[PHP] mysql kan niet volgen?

Pagina: 1
Acties:
  • 48 views sinds 30-01-2008

  • .phoz
  • Registratie: Januari 2006
  • Laatst online: 04-04 18:35
Deze code wordt gebruikt om comments te laten zien bij een nieuwsbericht en er ook 1 te posten. als je ingelogd bent en er een post wordt r18-r24 uitgevoerd en normaal doet ie dan ook nog r31-r35 vanaf r32 stopt de script. Weet er iemand hoe dat dat komt?
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
function getcomment($id){
        $id=addslashes($id);
        $sql = mysql_fetch_assoc(mysql_query("Select * from site_news WHERE id = '".$id."'")) or die('comments error');
        temp($sql,$temp);
        if (loggedin()){
          if(!isset($_POST['submit'])){
            if(isset($_POST['preview'])){
                echo '<table width="440" border="0" cellspacing="0" cellpadding="0" class=contentnews><tr>
                <td width="2" rowspan="3" bgcolor="#F7941D"></td><td height="2" bgcolor="#F7941D"></td>
                <td width="2" rowspan="3" bgcolor="#F7941D"></td></tr><tr><td>'.$_POST['tekst'].'</td></tr><tr>
                <td height="2" bgcolor="#F7941D"></td></tr></table>';
            }
            $comment = array("nid" => $id, "tekst" => $_POST['tekst']);
            temp($comment, "templates/cominput.html");
           }
          else
            {
            $tekst = addslashes($_POST['tekst']);
            $ids = mysql_fetch_assoc(mysql_query("Select id FROM site_comments ORDER by 'id' DESC Limit 0,1"));
            $id = $ids['id'] + 1;
            $tijd = tijd();
            $nid = addslashes($_POST['nid']);
            mysql_query("INSERT INTO `site_comments` ( `id` , `author` , `authorid` , `nid` , `comment` , `date` )
            VALUES ('".$id."', '".$_SESSION['username']."', '".$_SESSION['uid']."', '".$nid."', '".$tekst."', '".$tijd."');");
            }
        }
        else
            {
            echo"<center><font color=red>U need to be logged in to post a comment</font></center>";
            }
        temp($fces, "templates/commentheader.html");
        $com = mysql_query("SELECT * FROM `site_comments` WHERE `nid` = '".$id."' ORDER BY 'id' DESC");
        while ($don = mysql_fetch_assoc($com)){
            temp($don, "templates/comment.html");}
        temp($fces, "templates/commentfooter.html");
}

  • ZroBioNe
  • Registratie: Augustus 2001
  • Niet online
Omdat regel 33 false is?

  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 15:21

Salandur

Software Engineer

verander regel 32 eens in
PHP:
1
$com = mysql_query("SELECT * FROM `site_comments` WHERE `nid` = '".$id."' ORDER BY 'id' DESC") or die (mysql_error)

dan krijg je de mysql fout te zien of voer de query uit in mysql.

[ Voor 19% gewijzigd door Salandur op 03-03-2006 14:06 ]

Assumptions are the mother of all fuck ups | iRacing Profiel


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Wat andere tips:
Gebruik alsjeblieft gewoon auto_increment in je DB voor het veldje site_comments.id. Scheelt je de select query en berekening op regel 19 en 20.

Je gebruikt Engelse en Nederlands naampjes door elkaar heen en je indenting kan beter. Dit leest eerlijk gezegd totaal niet lekker.

{signature}


  • YopY
  • Registratie: September 2003
  • Laatst online: 26-02 11:03
Ik zie dat in de query die uitgevoerd word het ID omsloten word met single quotes. Hierdoor ziet MySQL dat ID dus als een string, in plaats van een integer. Ik weet niet of het wat uitmaakt, maar ik kan me voorstellen dat het probleem daarin liggen kan.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-03 14:33

NMe

Quia Ego Sic Dico.

Sorry hoor, maar debuggen mag je zelf doen. Wij kunnen en willen dat niet voor je doen. Lees P&W FAQ - Leer **** debuggen!! maar even door als je moeite hebt met debuggen, en als het je daarna nog niet lukt, dan kun je hier een nieuw topic openen. Hou je daarbij dan wel aan de quickstart, want ik mis nogal wat eigen inzet in dit topic.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-03 14:33

NMe

Quia Ego Sic Dico.

(14:21:33) Voutloos: topic dat je net sluit, is dit de oplossing:

Je hebt een kolom 'id' in site_comments wat blijkbaar het comment id is, maar $id in die functie is blijbaar het id van een site_news rij. Dit leidt tot verwarring, dus doe wat aan je naamgeving. In regel 20 gaat dat dus fout, want daaar wijs je het volgende id van een comment dus toe aan $id en vervolgens zal dat $id worden gebruikt als site_news.id. :X

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.