571
צפיות
צפיות
16
תשובות
תשובות
בעיה במסד נתונים mysql
בימים אלו אני לומד php בניתי מערכת חדשות (לפי המדריך כאן)
מישום מה אני לא מצליח להציג הכל עובד כשורה כניראה יש בעיה במסד
הינה תמונה של המסד איך שיצרתי אותו במה טעיתי?
http://members.lycos.co.uk/omer131/Image1.gif
דרך אגב אני מנסה להכניס טקסט רגיל
תודה מראש
16 תשובות
שחכתה לציין מספר ערכים.
אנא פרט יותר אני לא הבנתי
תשובה
יש לך בתמונה שדה Length/Values והוא חובה.
לא מילאת בו ערכים.
מה אני צריך למלות בו?
גודל השדה (מספר התווים שהוא יכיל)
עכשיו זה לא יוצר לי את הטבלה
מה אני צריך לעשות?
תגדיר "לא יוצר".
מה ה phpmyadmin אומר?
הינה הקודים הרלוונתים
הינה השאילתה שאיתה אני מכניס:
mysql_query("INSERT INTO news (in1,in2) VALUES ('$in1','$in2')") or die("ERROR: ".mysql_error());
הינה הקוד שאיתו אני קורא:
<?php
$host="localhost";
$user="omer131";
$password="1156780112344";
$db="omer131_uk_db";
$con=@mysql_connect($host,$user,$password);
@mysql_select_db($db);
$sqlquery="SELECT * FROM news";
$theresult=@mysql_query($sqlquery,$con);
?>
<html>
<body>
<table border="1" width="500">
<tr>
<td align="center"><b>אני מנסה לכתוב סתם טקסט</b></td>
<td align="center"><b>סתמי לא משו מיוחד</b></td>
</tr>
<?
while ($recordeset=@mysql_fetch_array($theresult))
{
echo "<tr>";
echo "<td><center>".$recordeset["in1"]."</center></td>";
echo "<td><center>".$recordeset["in2"]."</center></td>";
echo "</tr>";
}
?>
</TABLE>
<?php mysql_close($con);?>
</body>
</html>
…….
הרשתי לעצמי לשפר לך את הקוד:
<?php
$con=@mysql_connect("localhost","omer131","1156780112344");
@mysql_select_db("omer131_uk_db");
$SQL=@mysql_query("SELECT * FROM `news`",$con);
@mysql_close($con);
$con=null;
?>
<html>
<body>
<table border="1" width="500">
<tr>
<td align="center"><b>אני מנסה לכתוב סתם טקסט</b></td>
<td align="center"><b>סתמי לא משו מיוחד</b></td>
</tr>
<?php
while ($recordeset=@mysql_fetch_array($SQL))
{
echo "<tr>";
echo "<td><center>".$recordeset["in1"]."</center></td>";
echo "<td><center>".$recordeset["in2"]."</center></td>";
echo "</tr>";
}
@mysql_free_result($recordeset);
$recordeset=null;
$SQL=null;
?>
</TABLE>
</body>
</html>
אז דבר ראשון, אתה לא צריך להגדיר מישתנה לכלערך בחיבור (שרת, משתמש, סיסמה), במדריך זה רק כדאי להבהיר מה זה כל דבר, אותו דבר גם למסד נתונים.
דבר שני, אתה לא צריך לאחר ה mysql_query להשאיר את אוביקט החיבור פתוח, סוגרים אותו לאחר מכן, כמו כן $con=null; הורג את המישתנה וכך מפנה זיכרון בשרת.
גם לשאילתה אתה לא צריך משתנה.
שיניתי גם את שם המשתנה של השאילתה ל $SQL כי לדעתי זה הרבה יותר ברור.
אחרי הלולאה ששולפת את התוצאות בהתאם לשאילתה שהוצבה אני מפנה את הזיכרון (תמיד! חשוב מאוד לפנות משתנים בהקדם האפשרי), והורג את המשתנה, לאחר מכן הריגלת המשתנה $SQL.
עכשיו לבעייה האמיתית, אתה לא הבאתה שגיאה, תיזכור את זה טוב טוב :::: תמיד תביא שגיאה, לא חשוב מהיא תמיד תביא, תמיד תמיד תמיד, כי ככה אי אפשר לעזור לך.
חוץ מיזה שאני לא מבין איך הקודים שבאתה קשורים אלינו.
בהצלחה.
הקוד לא עובד עכשיו אני בטוח שזה בבס
יס הנתונים
אולי תסבירו לי בבקשה איך אפשר לעשות טבלה שמכניסה רק טקסט?
ככה:
דבר ראשון יעש במדור ה PHP מאמאר על זה, תיקרא אותו, וזאותי הפעם ה 100 שאני אומר לך, אם היו לך עוד שאלות תבוא ותישאל, אל תצפה שיסבירו לך הכול מכלום.
עכשיו תריץ על המסד נתונים שלך את השאילתה הזאות:
CREATE TABLE `test` (
`num1` VARCHAR( 255 ) NOT NULL ,
`num2` VARCHAR( 255 ) NOT NULL
זה יצור טבלה בשם test ושדות בשם num1,num2 מסוג VARCHAR (טקסט) באורך של 255.
שנה את הפרטים המתאימים.
מוזר עדין לא עובד שיניתי הכל וזה לא
עובד….
זה שוב מראה לי רווח כזה בטבלה
והבסיס נתונים קלט את מה שנתתה לי
הבעייה לא בקוד
הבעייה אצלך, אתה עושה משהוא ואתה לא מגלה לי, תעבר על הקוד בפעם הראשונה, תיקרא ותבין את הקוד, אני מוכן לשים כסף על זה שלא עיינתה בקוד ברצינות להפני שהרצתה,תיקרא בפעם הראשונה, שנייה,שלישית וכה שתצטרך.
אני קראתי הרבה את הקוד ושיניתי
אבל מה יש כל כך לשנות
חוץ משמות התאים ושם הטבלה?
אני חושב שעליתי על הבעיה
שם הטבלה
jokes
שם התאים
j1,j2
הקוד של הכנסת הנתונים:
mysql_query("INSERT INTO jokes (j1,j2) VALUES ('$j1','$j2')") or die("ERROR: ".mysql_error());