[php / mysql] case switch laat niks zien

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Rusky
  • Registratie: December 2000
  • Laatst online: 16-09 11:14
ik heb een heel vaag probleem. Ik heb een script waarbij er nieuws postings worden toe gevoegd / gewist ed. In het begin deed hij het ook, maar nu ik wat
heb gewijzigt niet meer dus. Ik heb dus de wijziging terug gevoerd, maar nee hoor helemaal niks, en nu loop ik me blind te staren wat er precies fout is, maar ik kan geen fout vinden??? Er komt dan ook helemaal geen fout meldin in de browser, gewoon een leeg scherm.

script om te kijken:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$sql2 = "SELECT * FROM $news_db ORDER BY $order_news DESC LIMIT $b,$recs_news"; 
        $res2 = mysql_query($sql2) or die (mysql_error());
        
        while ($row = mysql_fetch_array($res2))
        {
            $author = $row["_author"];
            $id_show = $row["id"];
            $title = $row["_title"];
            $date_show = date ("d m Y H:i", $row["_date"]); 


            $sql1 = "SELECT * FROM auth WHERE id='$author'"; 
            $res1 = mysql_query($sql1);
            
            while ($row = mysql_fetch_array($res1)) 
            {
                $longname = $row["longname"];
                $rowcolor = (++$i % 2) ? $color1:$color2; 
                
                    echo"
                        <table width=\"700\">
                            <tr>
                                <td bgcolor=\"$rowcolor\" width=\"500\">$title</td>
                                <td bgcolor=\"$rowcolor\" width=\"100\">$longname</td>
                                <td bgcolor=\"$rowcolor\" width=\"100\">$date_show</td>
                                <td bgcolor=\"$rowcolor\">
                                    <a href=\"".$file_name."?action=edit&id=$id_show\">$show_edit</a>&nbsp;&nbsp;
                                </td>
                                <td bgcolor=\"$rowcolor\">
                                    <a href=\"".$file_name."?action=delete_question&id=$id_show\">$show_delete</a>
                                </td>
                            </tr>
                        </table>
                    ";  
            }
        }
        echo "<br><table width=\"100\"><tr><td align=\"left\">$prev_button</td><td align=\"right\">$next_button</td></tr></table><br>"; 
        echo "<br><a href=".$file_name."?action=add>$show_add</a><br><br><br>";


script dat het bericht moet wijzigen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
    case "edit":              
        
        $sql = "SELECT * FROM $news_db WHERE id=$id"; 
        $res = mysql_query($sql) or die (mysql_error()); 
        
        while ($row = mysql_fetch_array($res)) 
        { 
            $id_edit = $row["id"];
            $title  = $row["_title"];
            $shortnews = $row["_shortnews"];
            $longnews = $row["_longnews"];
        
        
        echo"
            <form action=".$file_name."?action=edit_db&id=$id_edit method=\"post\" name=\"edit\">
                <table>
                    <tr>
                        <td>$news_add_title</td>
                        <td><input type=\"text\" name=\"title\" value=\"$title\" size=\"98\"></td>
                    </tr>
                    <tr>
                        <td>$news_add_short</td>
                        <td><textarea rows=\"5\" cols=\"100\" name=\"short\">$shortnews</textarea></td>
                    </tr>
                    <tr>
                        <td>$news_add_long</td>
                        <td><textarea rows=\"10\" cols=\"100\" name=\"long\">$longnews</textarea></td>
                    </tr>
                    <tr>
                        <td><input type=\"submit\" value=\"$show_edit\" class=\"button\"></td>
                    </tr>
                </table>
            </form>
        ";
        }

    break;


als ik in de case edit voor de while een echo zet, krijg ik die gewoon te zien, dus ik denk dat de fout daarna komt.

mijn pc


Acties:
  • 0 Henk 'm!

Verwijderd

Als je hem include in een ander PHP script, let er dan op dat je er geen @ voor zet, die zorgt ervoor dat hij geen foutmeldingen geeft ;)

Acties:
  • 0 Henk 'm!

  • Rusky
  • Registratie: December 2000
  • Laatst online: 16-09 11:14
dit script word nergens ge-include, maar ik heb het vermoeden dat er na
PHP:
1
while ($row = mysql_fetch_array($res))
wat fout gaat, zodat hij geen
PHP:
1
echo
weergeeft

mijn pc


Acties:
  • 0 Henk 'm!

  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 19:46
Dit heet dus debuggen en zul je echt zelf moeten doen. Begin bijvoorbeeld bovenin het script eens met een echo en kijk of je die ook in de uitvoer ziet verschijnen. Zo ja, dan zet je de echo na het volgende statement. Zo nee, dan weet je nu welke regel fout is gegaan. (in lussen kun je evt een teller laten mee lopen en weergeven.) Kijk trouwens ook of je uberhaupt wel de dingen terug krijgt die je verwacht (echo bijvoorbeeld eens de wat er uit mysql_query() komt)

Zorg er trouwens sowieso voor dat je error_reporting op E_ALL hebt staan.