הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   עזרה ביצירת עמוד לכל כתבה בעזרת GET id (https://hosts.co.il/forums/showthread.php?t=29775)

THEtop 28-08-06 23:32

עזרה ביצירת עמוד לכל כתבה בעזרת GET id
 
אז ככה כמו שהזכרתי פה אני בונה מערכת כתבות קטנה,
עכשיו אני מנסה לעשות דבר כזה - יש לי דף שהוא מציג את כל הכתבות בלולאה - אבל אם אני עושה למשל www.example.com/article.php?id=1 אז הוא יציג לי רק את הכתבה הראשונה (ID 1)
עכשיו יצרתי קוד כלשהוא - כשאני מנסה להיכנס בלי ?id= הוא מציג לי את כל הכתבות - אבל כשאני מנסה לעשות את הid=1 בכתובת - מופיע לי פשוט עמוד ריק מתוכן,
מישהו יוכל להגיד לי מה הבעיה בקוד?:
PHP קוד:

<?php
mysql_connect
('localhost','example_domain','112211');
mysql_select_db('example_domain');
$result mysql_query("SELECT * FROM news ORDER BY id DESC") or die(mysql_error());
if (isset(
$_GET["id"])) {
    
/* Build an article query */
    
$q mysql_query("SELECT * FROM news WHERE id='$_GET[id]'");

        while (
$row mysql_fetch_row($qMYSQL_BOTH)) {
            
$content $row["content"];
            
$title $row["title"];
            echo 
"abc";
        }

} else {
while (
$row=mysql_fetch_array($resultMYSQL_BOTH))
{
    echo (
"<table width=\"600\" cellpadding=\"2\" cellspacing=\"2\" border=\"1\"> ");
    echo (
"<tr> ");
    echo (
"<td bgcolor=\"gray\" width=\"100%\">" $row['title'] . "</td> ");
    echo (
"</tr> ");
    echo (
"<tr><td bgcolor=\"white\" width=\"100%\">" $row['subject'] . "</td> ");
    echo (
"</tr> ");
    echo (
"<tr><td bgcolor=\"white\" width=\"100%\">" $row['content'] . "</td> ");
    echo (
"</tr> ");
    echo (
"<tr><td bgcolor=\"white\" width=\"100%\">" $row['date'] . "</td> ");
    echo (
"</tr> ");
    echo (
"</table> ");
    echo (
"<br>");
}
}

?>


amirs_5 28-08-06 23:36

PHP קוד:

<?php 
mysql_connect
('localhost','example_domain','112211'); 
mysql_select_db('example_domain'); 
$result mysql_query("SELECT * FROM news ORDER BY id DESC") or die(mysql_error()); 
if (isset(
$_GET["id"])) { 
    
/* Build an article query */ 
    
$q mysql_query("SELECT * FROM news WHERE id='{$_GET['id']}'"); 

        while (
$row mysql_fetch_row($q)) { 
            
$content $row["content"]; 
            
$title $row["title"]; 
            echo 
"abc"
        } 

} else { 
while (
$row=mysql_fetch_array($result)) 

    echo (
"<table width=\"600\" cellpadding=\"2\" cellspacing=\"2\" border=\"1\"> "); 
    echo (
"<tr> "); 
    echo (
"<td bgcolor=\"gray\" width=\"100%\">" $row['title'] . "</td> "); 
    echo (
"</tr> "); 
    echo (
"<tr><td bgcolor=\"white\" width=\"100%\">" $row['subject'] . "</td> "); 
    echo (
"</tr> "); 
    echo (
"<tr><td bgcolor=\"white\" width=\"100%\">" $row['content'] . "</td> "); 
    echo (
"</tr> "); 
    echo (
"<tr><td bgcolor=\"white\" width=\"100%\">" $row['date'] . "</td> "); 
    echo (
"</tr> "); 
    echo (
"</table> "); 
    echo (
"<br>"); 



?>

אני לא ראיתי פה קבוע, MYSQL_BOTH , כנראה זאת הבעיה.
נסה.

THEtop 28-08-06 23:51

אוקיי עכשיו ככה עידכנתי לקוד שלך - ועכשיו זה הציג את הecho "abc"; שבתוך הלולאה שאמורה להציג את הכתבה ע"פ הID.
הבעיה היא שכשאני מנסה לשים במקום נגיד echo $row['content'] ; כדי להציג את תוכן הכתבה - זה נישאר ריק.
מישהו?

Level-Serv 29-08-06 00:28

עוד כמה דברים:
כאשר יש לך בוודאות רק שדה אחד כתשובה, לדוגמא שאתה עושה where ע"פ id אז אתה לא חייב לעשות את הלולאה.
כמו כן, את הלקיחה הראשונה של הנתונים מהמסד לפני הif זה מיותר, צריך לשים את זה בתוך הelse כי אם זה עמוד של קטנה זה סתם לא יעיל.

O-B 29-08-06 01:24

PHP קוד:

<?php 
mysql_connect
('localhost','example_domain','112211'); 
mysql_select_db('example_domain'); 
$id $_GET[id];
if (
$id <> NULL) {
    
$q mysql_query("SELECT * FROM news WHERE id='$id'"); 
    while (
$row mysql_fetch_row($q)) { 
            echo (
"<table width=\"600\" cellpadding=\"2\" cellspacing=\"2\" border=\"1\"> "); 
            echo (
"<tr> "); 
            echo (
"<td bgcolor=\"gray\" width=\"100%\">" $row['title'] . "</td> "); 
            echo (
"</tr> "); 
            echo (
"<tr><td bgcolor=\"white\" width=\"100%\">" $row['subject'] . "</td> "); 
            echo (
"</tr> "); 
            echo (
"<tr><td bgcolor=\"white\" width=\"100%\">" $row['content'] . "</td> "); 
            echo (
"</tr> "); 
            echo (
"<tr><td bgcolor=\"white\" width=\"100%\">" $row['date'] . "</td> "); 
            echo (
"</tr> "); 
            echo (
"</table> "); 
            echo (
"<br>"); 
    } 
}else{
    
$q mysql_query("SELECT * FROM news ORDER BY id DESC"); 
    while (
$row mysql_fetch_row($q)) { 
            echo (
"<table width=\"600\" cellpadding=\"2\" cellspacing=\"2\" border=\"1\"> "); 
            echo (
"<tr> "); 
            echo (
"<td bgcolor=\"gray\" width=\"100%\">" $row['title'] . "</td> "); 
            echo (
"</tr> "); 
            echo (
"<tr><td bgcolor=\"white\" width=\"100%\">" $row['subject'] . "</td> "); 
            echo (
"</tr> "); 
            echo (
"<tr><td bgcolor=\"white\" width=\"100%\">" $row['content'] . "</td> "); 
            echo (
"</tr> "); 
            echo (
"<tr><td bgcolor=\"white\" width=\"100%\">" $row['date'] . "</td> "); 
            echo (
"</tr> "); 
            echo (
"</table> "); 
            echo (
"<br>"); 
    } 
}

?>

מקווה שעזרתי :)

THEtop 29-08-06 11:04

O-B תודה על הקוד - אבל יש עוד בעיה |מסמיק|
הקוד פועל - אבל הוא מציג טבלה ריקה - זאת אומרת הוא לא מצליח למשוך נתונים מהמסד - פשוט נוצרת לי הטבלה אבל ריקה.
מישהו יודע מה הבעיה פה?
__________________________
עריכה:
הדפסתי בעזרת print_r את המשתנה $row והוא אכן הדפיס לי את הנתונים מהמסד - אבל הבעיה שכשאני מנסה למשוך נתון למשל content בעזרת המשתנה row לא מופיע כלום (ריק).

Elad-A 29-08-06 11:11

בדקת שאכן יש משהו בטבלה?

THEtop 29-08-06 11:24

ציטוט:

נכתב במקור על ידי Elad-A
בדקת שאכן יש משהו בטבלה?

כן ברור - אחרת כשהייתי מדפיס בעזרת הprint_r לא היה מופיע כלום - אבל כן מופיעים הנתונים.
הבעיה שזה לא מציג אותם כשאני מושך אותם בעזרת $row.

THEtop 29-08-06 11:30

תודה לכולם הסתדרתי - הבעיה הייתה בלולאה הראשונה - היה רשום mysql_fetch_row במקום mysql_fetch_array

RS324 29-08-06 13:13

תשנה את ה WHILE ל

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {


כל הזמנים הם GMT +2. הזמן כעת הוא 04:31.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ