שאלה בקשר לPHP ו MySQL

spheonx

New member
שאלה בקשר לPHP ו MySQL

התחלתי לשחק קצת עם ה MYSQL דרך ה PHP ואני חייב להודות זה די נחמד עד כה אני די תקוע בקטע של שאילתות (שזה בעצם רוב הSQL, לא?) <?php mysql_pconnect ("localhost:3306"); mysql_selectdb(´users´); $result = mysql_query ("SELECT * FROM users WHERE username like t*´;") or die ("Invalid query"); ?> איך אני מציג את שדות השאילתה שקיבלתי? echo $result לא רק שלא נראה לי הגיוני, הוא לא עובד יש רעיונות?
 

yahelb

New member
while loop

while($myrow = mysql_fetch_array($result)) { echo $myrow["field_name"]; }
 

shanor

New member
עוד אפשרויות

יש כל מני השאלה היא מה אתה צריך כשהכוונה היא בעיקר לכמות המידע שיש לך בתשובה לשאילתה ששאלת. בגדול תחפש במניואל של PHP תחת הפונקציות של Mysql, אחרי שקיבלת את RESULT$, כל מה שאתה צריך לעשות זה בסך הכל לבקש את המשתנה שלך בצורה שאתה רוצה. אני בעיקר אוהב לעבוד עם mysql_fetch_array, משום שהיא נותנת מערכים שלמים של שורות על פי השדות שהתקבלו בתשובה. בדרך כלל אני מקבל בתשובה הרבה מאוד שדות אז לדעתי זו הדרך הטובה ביותר לטפל במצבים של הרבה שדות. בוא נגדיר את זה ככה: יש לך עוד מה ללמוד, אבל אתה בכיוון הנכון. בהצלחה שנאור.
 

orenphp

New member
יתרון נוסף בmysql_fetch_array

דבר נוסף להקלה על פילוח התוצאות מהמסד הינו השימוש בפונקציה extract לדוגמא נקח את שם פרטי ואי מייל וננסה לנתחם בצורה הפשוטה ביותר:
$query = "SELECT name,email FROM MYTABLE"; $get = mysql_query($query);​
עכשיו נבדוק אם אכן התקבלו תוצאות, ואם כן נדפיס אחד אחד
if (mysql_num_rows($get)) { while ($result = mysql_fetch_array($get)) { extract($result); echo $name." -> ".$email; } } else echo "השאילתה לא הניבה תוצאות";​
באמצעות extract חסכנו את העבודה ה"מלוכלת" עם מערכים וקיבלנו את המשתנים בצורתם בטבלה (הכי נוח לדעתי - במקרה שיש לך הרבה שדות בטבלה), ללא צורך בפיענוח כל שדה בנפרד:
$name = $result[´name´]; $email = $result[´email´];​
יותר פשוט לא? אורן
 
למעלה