[php & mysql] fout met num_rows

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een script welke foto's en thumbs uitleest uit 2 directory's en daar een gallery van maakt.
Nu gebruik ik deze code;

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$dir_big="fotos/$dir/images";
        $new_dir="fotos/$dir/thumb";
                global $errors;
        if (is_dir($new_dir))
            {
            $fd = opendir($new_dir);
            $images = array();
            while (($part = @readdir($fd)) == true)
                {
                clearstatcache();
                if ( eregi("(gif|jpg|png|jpeg)$",$part) )
                    {
                $images[] = $part;
                    }
                }

....................... (andere code)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
else if (is_dir($new_dir))
            {
            $o=1;
            echo("<table><tr>");
            for($i=0;$i < sizeof($images);$i++)
                {
                    if($i/$o == 3){
                        echo("</tr><tr><td><br></td></tr><tr>");
                        $o = $o + 1;
                    }
                    $size = GetImageSize("$dir_big/$images[$i]");
                    $size[0] = $size[0] + 20;
                    $size[1] = $size[1] + 25;
                    $aant = sizeof($images);
                    $select_dir="$dir_big/$images[$i]";
                    $reactie_result = mysql_query("SELECT * FROM pictures_comments where comment_id = '". $select_dir ."' ;");
                    $num_reacties = MYSQL_NUM_ROWS($reactie_result);
                    echo("<td><div align=center><font size=2>$num_reacties reactie(s)</font><br><a href='fotos.php?&aant=$aant&i=$i&dir=$dir&linkje=$dir_big/$images[$i]'>[img]$new_dir/$images[$i][/img]</a></div><td>");
                }
            }
            echo("</tr></table>");


Ik krijg als foutmelding:

mysql_num_rows(): supplied argument is not a valid MySQL result resource on line 125.
Regel 125 is de volgende regel;
PHP:
1
2
$num_reacties = MYSQL_NUM_ROWS($reactie_result);
                    echo("<td><div align=center><font size=2>$num_reacties reactie(s)</font><br><a href='fotos.php?&aant=$aant&i=$i&dir=$dir&linkje=$dir_big/$images[$i]'>[img]$new_dir/$images[$i][/img]</a></div><td>");



Ik snap echter niet waarom hij deze fout geeft. Heb al van alles geprobeerd en ook de waarde geecho't maar dat doet hij ook niet.
Iemand die me kan helpen ?

Acties:
  • 0 Henk 'm!

Verwijderd

je query is blijkbaar niet goed, vandaar dat ie die foutmelding geeft... heb je die query al eens in phpmyadmin gegooid? kijk daar dan maar eens wat voor fout eruit komt :)

Acties:
  • 0 Henk 'm!

  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

echo mysql_error();

Wat geeft dat?

Systeem | Strava


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
tabel is nog leeg dus hij zou gewoon 0 moeten geven.

de tabel is trouwens zo opgebouwd;

comment_id varchar(15)
date varchar(15)
email varchar(25)
comment longtext

Acties:
  • 0 Henk 'm!

  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

Dit wordt echt raden galore als je niet minstens ff de erros geeft die je query oplevert.

Systeem | Strava


Acties:
  • 0 Henk 'm!

  • cdgrit
  • Registratie: Mei 2002
  • Laatst online: 13-01 16:44
Zit een fout in je query. Controleer of de waarde van $select_dir wel goed is door een echo $select_dir; uit te voeren. Er staat ook een spatie tussen de ' en de ; aan het eind van de query, zou dat nog uit maken?


Originele startpagina - Stadindex.nl


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Bij 0 rijen in resultaatset krijg je inderdaad deze error. Je moest num_rows in een if statement zetten, ik geloof iets als:
PHP:
1
2
if(mysql_num_rows($result)<>0){
}

[ Voor 6% gewijzigd door djluc op 24-05-2003 15:55 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
brakkie schreef op 24 May 2003 @ 15:50:
echo mysql_error();

Wat geeft dat?
Unknown column 'comment_id' in 'where clause'

Acties:
  • 0 Henk 'm!

  • cdgrit
  • Registratie: Mei 2002
  • Laatst online: 13-01 16:44
djluc schreef op 24 mei 2003 @ 15:54:
Bij 0 rijen in resultaatset krijg je inderdaad deze error.
Volgens mij niet hoor! Je moet dan gewoon 0 terugkrijgen!


Originele startpagina - Stadindex.nl


Acties:
  • 0 Henk 'm!

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Verwijderd schreef op 24 May 2003 @ 15:57:
Unknown column 'comment_id' in 'where clause'
En bestaat die colomn wel in de tabel pictures_comments. Da's misschien ook handig om te melden :X

Acties:
  • 0 Henk 'm!

Verwijderd

Glimi schreef op 24 mei 2003 @ 16:00:
[...]

En bestaat die colomn wel in de tabel pictures_comments. Da's misschien ook handig om te melden :X
blijkbaar dus niet, anders geeft ie deze error niet ;)

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Ik neem aan dat je 'comment_id' bedoeld glimi?

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

djluc schreef op 24 mei 2003 @ 16:01:
Ik neem aan dat je 'comment_id' bedoeld glimi?
nee dat is de kolom ;)
Glimi schreef op 24 mei 2003 @ 16:00:
[...]

En bestaat die colomn wel in de tabel pictures_comments. Da's misschien ook handig om te melden :X
en die moet juist in de tabel pictures_comments bestaan ;)
lees de sql-query maar :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hmm, erg domme fout gemaakt. Had de s bij pictureS_comments vergeten. :)
Maar goed dat heb ik veranderd en nu draait die ook wel, deels alleen kan ik nog maar 1 reactie plaatsen en niet meer. Ik ben nu zo lang met dit script bezig dat ik door de bomen het bos niet meer zie :?

Zal zelf nog ff verder klooien en anders kom ik hier wel terug...

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op 24 May 2003 @ 16:08:
Hmm, erg domme fout gemaakt. Had de s bij pictureS_comments vergeten. :)
Maar goed dat heb ik veranderd en nu draait die ook wel, deels alleen kan ik nog maar 1 reactie plaatsen en niet meer. Ik ben nu zo lang met dit script bezig dat ik door de bomen het bos niet meer zie :?

Zal zelf nog ff verder klooien en anders kom ik hier wel terug...
en daarom is het van belang om foutmeldingen te leren lezen ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het is me gelukt, alles draait nu zoals het moet.
Was gewledig klooien, maar na idd wat meer op de foutmeldingen van mysql te hebben gelet ben ik er uit gekomen.

Thanks allemaal

[ Voor 87% gewijzigd door Verwijderd op 24-05-2003 16:43 . Reden: Fout opgelost ]


Acties:
  • 0 Henk 'm!

  • cdgrit
  • Registratie: Mei 2002
  • Laatst online: 13-01 16:44
Je kunt de variabelen gewoon erin zetten, hoeft niet met '.$var.', maar gewoon:
VALUES ("$comment_id")


Originele startpagina - Stadindex.nl


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Tizzwat:
ik gebruik dit om data in mysql te gooien
PHP:
1
2
3
4
5
if(isset($comment_id) && isset($naam) && isset($comment)){
   $insert = mysql_query('INSERT [snip] )');
    
echo"gelukt";
//header("Location: ../fotos.php?dir=$dir");


als ik hem aanroep dan staat er ook gelukt (dus hij zou het wel moeten uitvoeren !!)
Ik zie een heel aantal logische fouten in je code:
[list]• Je print altijd "gelukt" ook al weet je nog helemaal niet zeker of het wel gelukt is.
[list]• Je controleert niet of het inserten wel gelukt is
PHP:
1
2
3
if ( mysql_errno () ) {
   // ...
}

• Je geeft niets aan als $comment_id, $naam of $comment niet geset is
PHP:
1
2
3
4
5
if ( isset [...] ) {
   // ...
} else {
   echo 'De variabelen zijn dus NIET geset';
}


• Je controleert je input niet, behalve door te kijken of ze "set" zijn. Wat als er quotes of ';' in de variabelen voorkomen?

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
drm schreef op 24 May 2003 @ 16:33:
Ik zie een heel aantal logische fouten in je code:
[list]• Je print altijd "gelukt" ook al weet je nog helemaal niet zeker of het wel gelukt is.
[list]• Je controleert niet of het inserten wel gelukt is
PHP:
1
2
3
if ( mysql_errno () ) {
   // ...
}

• Je geeft niets aan als $comment_id, $naam of $comment niet geset is
PHP:
1
2
3
4
5
if ( isset [...] ) {
   // ...
} else {
   echo 'De variabelen zijn dus NIET geset';
}


• Je controleert je input niet, behalve door te kijken of ze "set" zijn. Wat als er quotes of ';' in de variabelen voorkomen?
Je hebt deels gelijk.
Ik had niet de gehele code gepost maar slecht de ene if. De else bij de isset() functie heb ik wel, alleen hier niet gepost.
Maar ik ga idd nog ff inbouwen dat de variabeles gecontroleerd worden. Vergeten.
Pagina: 1