שלח תשובה

זירת השאלות

783
צפיות
13
תשובות

php+Mysql

,‏ 29 באפריל, 2006

אז ככה…אני מתחיל ב-mysql וגם ב-php.ויש לי בעיות של שילוב php ו-HTML.
צירפתי קוד ובו אני מנסה לעשות 4 שדות טקסט,
שכאשר אלחץ על הכפתור הנתונים מהשדות טקסט יכנסו לטבלת נתונים,
כדי שבמצב אחר אני אוכל לשלוף את הנתונים(עוד לא בניתי את שליפת הנתונים).
משום מה זה לא עובד לי…מישהו מוכן בבקשה לעזור לי?


<html>
<head>
<?
$link=mysql_connect("localhost","evy");
if(! $link)
    die("Couldn't connect to My SQL");
$database="pnim";
mysql_select_db($pnim) or die("Couldn't open $pnim");

CREATE TABLE crew (policeman,scienctist,talk,moneyy);
INSERT INTO crew (policenan,scienctist,talk,moneyy)
        VALUES ($police,$sience,$dovr,$kalkel);
fuction go()
    {
UPDATE pnim SET policeman=$police;
UPDATE pnim SET scienctist=$sience;
UPDATE pnim SET talk=$dovr;
UPDATE pnim SET moneyy=$kalkel;
    }

?>
<title></title>
</head>
<body>
<form name="mcrew">
<input type="text name="police">1<br>
<input type="text name="sience">2<br>
<input type="text name="dovr">3<br>
<input type="text name="kalkel">4<br>
<button onclick="go()">שנה!</button>
</form>
</body>
</html>


תודה מראש!

תגיות:

13 תשובות

  1. בניה הגיב:

    בכלל לא ככה עושים את זה
    ב"ה

    אתה צריך לשלוח את הטופס לשרת :
    https://webmaster.org.il/guide.asp?subject=php&class=dataTransfer
    ואז לטפל בו.

  2. evy3 הגיב:

    הבנתי אותך…
    עשיתי את מה שאמרת אבל משהו לא מסתדר עדיין.
    תראה זה התהליך:
    קובץ hi.html:


    <html>
    <head>
    <title></title>
    </head>
    <body>
    <form name="mcrew" action="in.php" method="post">
    <input type="text name="police">שוטרים<br>
    <input type="text name="sience">מדענים<br>
    <input type="text name="dovr">דוברים<br>
    <input type="text name="kalkel">כלכלנים<br>
    <br><br><br><br>

    <input type="text name="cit">עיר<br>
    <input type="text name="yesh">ישוב<br>
    <input type="text name="kib1">קיבוץ<br>
    <input type="submit" value="שנה">
    </form>
    </body>
    </html>

    אחר כך הקובץ in.php:


    <html>
    <head>
    <?php

    $link=mysql_connect("localhost","evy","123");
    if( ! $link)
        die("Couldn't connect to MySQL");
    $database="pnim";
    mysql_select_db($pnim) or die("Couldn't open $pnim");

    CREATE TABLE crew (policeman,scienctist,talk,moneyy);
    INSERT INTO crew (policeman,scienctist,talk,moneyy)
            VALUES ($police,$sience,$dovr,$kalkel);

    UPDATE pnim SET policeman=$police;
    UPDATE pnim SET scienctist=$sience;
    UPDATE pnim SET talk=$dovr;
    UPDATE pnim SET moneyy=$kalkel;

    mysql_close($link);

    $db=mysql_connect("localhost","evy5","1234");
    if(! $db)
        die("Couldn't connect to mySQL");
    $database="citys";
    mysql_select_db($citys) or die("Couldn't open $citys");

    CREATE TABLE balad (ir,yeshuv,kibuz);
    INSERT INTO crew (ir,yeshuv,kibuz)
            VALUES ($cit,$yesh,$kib1);

    UPDATE citys SET ir=$cit;
    UPDATE citys SET yeshuv=$yesh;
    UPDATE citys SET kibuz=$kib1;

    mysql_close($citys);
    ?>
    <title></title>
    </head>
    <body>

    </body>
    </html>

    ולאחר מכן הקובץ try.php:


    <html>
    <head>
    <?php
    $link=mysql_connect("localhost","evy","123");
    if( ! $link)
        die("Couldn't connect to MySQL");
    $database="pnim";
    mysql_select_db($pnim) or die("Couldn't open $pnim");

    $res=mysql_query("SELECT * FROM pnim");
    mysql_close($link);
    ?>
    <title></title>
    </head>
    <body>

    </body>
    </html>

    אני באמת מעריך את העזרה שלך.
    האם תוכל לעזור לי שנית למצוא את הטעות שלי?
    תודה שוב.

  3. nikon הגיב:

    יש לך בעיה עם קישור ה Mysql ל PHP
    כל השאילתות , כגון:
    CREATE TABLE 'bla'
    SELECT * FROM
    INSERT INTO
    וכו' יופעלו על-ידי הפונקציה הבאה:
    mysql_query("");

    לדומה:


    mysql_query("INSERT INTO table(col1,col2) VALUES('$val1','$val2')");

    יתר על כן, שמתי לב שאתה השתמשת בשאילתא::
    Create Table
    ובכן שאילתא זו יוצרת טבלה.
    ואם הקוד שלך היה תקין (לפי ההערה שלי) כל פעם שהייתה לוחץ על הכפתור הייתה נוצרת טבלה חדשה (תאורטית)
    אך במעשה אחרי הפעם הראשונה זה לא יעבוד
    (NAME table is already exists)

    כך שאני ממליץ לך קודם ליצור קובץ php.
    תקרא לו Installer
    או משהו כזה וקובץ זה יכיל את שאילתות יצירת הטבלאות.

    בהצלחה!
    אופיר.

  4. evy3 הגיב:

    רק דבר אחד קטן…
    תודה על תשובה חדה וזריזה.
    רק לא הבנתי את הקטע:
    "כך שאני ממליץ לך קודם ליצור קובץ php.
    תקרא לו Installer
    או משהו כזה וקובץ זה יכיל את שאילתות יצירת הטבלאות."
    מה זאת אומרת?האם תוכל לפרט בבקשה?
    תודה  

  5. nikon הגיב:

    בטח 😀
    את כל השאילתות ליצירת הטבלאות שים בקובץ אחר,
    הנה דוגמה לקובץ install.php :


    <?php
    $conn = mysql_connect("localhost","user","pass")or die(mysql_Error());
    mysql_select_DB("db_name",$conn)or die(mysql_error());

    if($_GET['act'] == "install"){
    mysql_query("Create Table bla(
    colmun1 int auto_increment,

    )")or die(mysql_error());
    }else{
    echo "<a href='?act=install'>Install DB</a>";
    }

    ?>

  6. evy3 הגיב:

    כנראה שזה עובד…
    תודה אופיר,אני חושב שזה עובד.
    אך הוא אומר לי שהוא לא יכול להתחבר ל-mySQL:


    "mysql_connect(): Access denied for user 'ODBC'@'localhost' (using password: NO)"

    מה יכולה להיות השגיאה…מותקן לי mysql.

    אשמח אם תוכל לעזור לי שוב

  7. nikon הגיב:

    ACCESS DENIED
    יוצרי השפה עמלו כל כך קשה בשביל לספק לך פירוט מלא על השגיאה ,
    ננתח את זה שלב שלב.


    Access denied

    משמע שהגישה נדחתה, וידוע שמדובר על הגישה ל Mysql.
    החלק השני הוא החלק המכריע:


    for user 'ODBC'@'localhost' (using password: NO

    שזה אומר למה זה נכשל בעצם.
    יכולות להיות 2 אפשרויות אם מוצגת שגיאה זו:
    א.פרטים שגויים
    ב.אין sql

    הפרטים שגויים אז.
    ה ODBC
    זה ברירת המחדל אז סימן שלא מילאת את הפרטים.
    א. Password: No – לא רשמת סיסמא.
    רשום נא את הקוד של הקבצים ואראה לך בצורה נוחה יותר כיצד לתקן זאת.

    ואפיר.

  8. evy3 הגיב:

    הנה הקודים של כל הקבצים
    אז הנה,זהו הקובץ הראשון:hi.html-


    <html>
    <head>
    <title></title>
    </head>
    <body>
    <form name="mcrew" action="in.php" method="post">
    <input type="text name="police">שוטרים<br>
    <input type="text name="sience">מדענים<br>
    <input type="text name="dovr">דוברים<br>
    <input type="text name="kalkel">כלכלנים<br>
    <br><br><br><br>

    </form>
    </body>
    </html>

    הקובץ השני:install.php-

    <?php
    $conn = mysql_connect("localhost") or die(mysql_Error());
    mysql_select_DB("db_name",$conn)or die(mysql_error());

    if($_GET['act'] == "install"){

    mysql_query("CREATE TABLE crew (policeman,scienctist,talk,moneyy)") or die(mysql_error());
    }else{
    echo "<a href='?act=install'>Install DB</a>";
    }

    ?>

    הקובץ השלישי:in.php-


    <html>
    <head>
    <?php

    $link=mysql_connect("localhost");
    if( ! $link)
        die("Couldn't connect to MySQL");
    $database="pnim";
    mysql_select_db($pnim) or die("Couldn't open $pnim");

    mysql_query("INSERT INTO crew (policeman,scienctist,talk,moneyy);
            VALUES ($police,$sience,$dovr,$kalkel)");

    mysql_query("UPDATE pnim SET policeman=$police");
    mysql_query("UPDATE pnim SET scienctist=$sience");
    mysql_query("UPDATE pnim SET talk=$dovr");
    mysql_query("UPDATE pnim SET moneyy=$kalkel");

    mysql_close($link);

    ?>
    <title></title>
    </head>
    <body>

    </body>
    </html>

    הקובץ הרביעי המציג את המידע מהבסיס נתונים:try.php-


    <html>
    <head>
    <?php
    $link=mysql_connect("localhost");
    if( ! $link)
        die("Couldn't connect to MySQL");
    $database="pnim";
    mysql_select_db($pnim) or die("Couldn't open $pnim");

    $res=mysql_query("SELECT * FROM pnim");
    mysql_close($link);
    ?>
    <title></title>
    </head>
    <body>

    </body>
    </html>

      

  9. nikon הגיב:

    מספפר תיקונים


    $conn = mysql_connect("localhost") or die(mysql_Error());
    mysql_select_DB("db_name",$conn)or die(mysql_error());

    אתה צריך למלא את הפרטים  
    db_name = "שם המסד"

    ומשום מה השמטת את הפרטים האחרים, תחליף את שורת ההתחברות הראשונה בזה:


    $conn = mysql_connect("localhost","username","password") or die(mysql_Error());

    את ה Localhost
    תשאיר כמו שהוא, אבל את השני תחליף לשם המשתמש של המסד, והשלישי לסיסמת המסד.

    עם זאת ראיתי שדף הראשון יש טופס אבל אין מבצע.
    איך אני אמור לשלוח את הנתונים אם אין כפתור?  
    יש להוסיף את השורה הבאה לפני הסיומת של </form>:


    <input type='submit' name='add' value='הוסף!' />

    מקווה שעזרתי….תקן את טעויות אלו.

  10. shadow הגיב:

    תראה עכשיו…
    תראה משהו כאן עדיין לא בסדר.
    הנה הכל ואני מקווה שהפעם זה יעבוד לי….

    hi.html:


    <html>
    <head>
    <title></title>
    </head>
    <body>
    <form name="mcrew" action="in.php" method="post">
    <input type="text name="police">שוטרים<br>
    <input type="text name="sience">מדענים<br>
    <input type="text name="dovr">דוברים<br>
    <input type="text name="kalkel">כלכלנים<br>
    <br><br><br><br>

    <input type="text name="cit">עיר<br>
    <input type="text name="yesh">ישוב<br>
    <input type="text name="kib1">קיבוץ<br>
    <input type="submit" value="שנה">
    </form>
    </body>
    </html>

    in.php:

    <html>
    <head>
    <?php

    $link = mysql_connect("localhost","evy","pas") or die(mysql_Error());

    mysql_select_DB("pnim",$conn)or die(mysql_error());
        die("Couldn't connect to MySQL");

    mysql_query("INSERT INTO crew (policeman,scienctist,talk,moneyy);
            VALUES ($police,$sience,$dovr,$kalkel)");

    mysql_query("UPDATE pnim SET policeman=$police");
    mysql_query("UPDATE pnim SET scienctist=$sience");
    mysql_query("UPDATE pnim SET talk=$dovr");
    mysql_query("UPDATE pnim SET moneyy=$kalkel");

    mysql_close($link);
    ?>
    <title></title>
    </head>
    <body>

    </body>
    </html>

    install.php:


    <?php
    $link = mysql_connect("localhost","evy","pas") or die(mysql_Error());

    mysql_select_DB("pnim",$conn)or die(mysql_error());
        die("Couldn't connect to MySQL");

    if($_GET['act'] == "install"){

    mysql_query("CREATE TABLE crew (policeman,scienctist,talk,moneyy)") or die(mysql_error());
    }else{
    echo "<a href='?act=install'>Install DB</a>";
    }

    ?>

    try.php:


    <html>
    <head>
    <?php
    $link = mysql_connect("localhost","evy","pas") or die(mysql_Error());

    mysql_select_DB("pnim",$conn)or die(mysql_error());
        die("Couldn't connect to MySQL");

    $res=mysql_query("SELECT * FROM pnim");
    mysql_close($link);
    ?>
    <title></title>
    </head>
    <body>

    </body>
    </html>

    ההודעת שגיאה היא בדיוק כמו הקודמת…הוא אומר שהשגיאה היא בקובץ try.php
    בשורה 4.

    תודה על המשך תשומת הלב.

  11. nikon הגיב:

    [ללא נושא]
    כנראה שהפרטים אינהם נכונים עדיין.
    אהההה
    מצד אחד שמרת את ההתחברות ב $link
    אבל בבחירת המסד השתמשת במשתנה אחר $conn
    תשנה את $conn ל $link

  12. evy3 הגיב:

    תיקנתי הכל
    אך הבעיה עדיין לא פתורה.
    אותה שגיאה חוזרת על עצמה ואני לא מבין למה…
    אולי יש עוד משהו?

שלח תשובה