Avatar billede sito Nybegynder
08. april 2003 - 14:20 Der er 14 kommentarer og
1 løsning

løkke virker ikke!

Hej

Jeg har lavet en kommentar service så mine brugere kan indtaste kommentarer på min side, og jeg vil så vise dem de kommentarer der tidligere er blevet indtastet i databasen via en løkke, og hvis der ikke er nogen skal denne så udskrive det til brugeren.
Men den virker ikke helt efter planen, da den ikke udskriver noget til brugeren, hvis der ikke er nogen kommentarer.
Jeg har forsøgt at sætte if-sætningen udenfor, hvilket resulterede i at man fik alle kommentarerne, men også linien, hvor der stod at der ingen var...

while($querydata = mysql_fetch_row($resultat)) {
     
echo "URL:".$querydata[0]."\n"."<br>\n"; 
echo "Navn:".$querydata[1]."\n"."<br>\n";
echo "E-mail:".$querydata[2]."\n"."<br>\n"; echo "Kommentar:".$querydata[3]."\n"."<br>\n";
echo "<br>\n";
if (!$querydata){
echo "Der er ikke indtastet nogen kommentarer\n";
echo "<br>\n";
echo "<br>\n";
}
}

Håber i kan hjælpe, og i må sige til, hvis i vil se mere af koden.
Avatar billede jensendk Nybegynder
08. april 2003 - 14:26 #1
Flyt en af dine nederste } op over linien med if(!$querydata ...

Din linie med ingen kommentarer udføres jo kun hvis der er data, og det er jo ikke det du vil
Avatar billede exp Juniormester
08. april 2003 - 14:26 #2
if (mysql_num_rows == '0') {
  echo "Der er ikke indtastet nogen kommentarer\n";
  echo "<br>\n";
  echo "<br>\n";
} else {
  while($querydata = mysql_fetch_row($resultat)) {
    echo "URL:".$querydata[0]."\n"."<br>\n"; 
    echo "Navn:".$querydata[1]."\n"."<br>\n";
    echo "E-mail:".$querydata[2]."\n"."<br>\n";
    echo "Kommentar:".$querydata[3]."\n"."<br>\n";
    echo "<br>\n";
}
Avatar billede chries Nybegynder
08. april 2003 - 14:27 #3
$comments = false;

while($querydata = mysql_fetch_row($resultat)) {
$comments = true;     
echo "URL:".$querydata[0]."\n"."<br>\n"; 
echo "Navn:".$querydata[1]."\n"."<br>\n";
echo "E-mail:".$querydata[2]."\n"."<br>\n"; echo "Kommentar:".$querydata[3]."\n"."<br>\n";
echo "<br>\n";
}

if (!$comments){
echo "Der er ikke indtastet nogen kommentarer\n";
echo "<br>\n";
echo "<br>\n";
}
Avatar billede sostack Nybegynder
08. april 2003 - 14:28 #4
Prøv med:

if (!$resultat){
echo "Der er ikke indtastet nogen kommentarer\n";
echo "<br>\n";
echo "<br>\n";
} else {
while($querydata = mysql_fetch_row($resultat)) {
     
echo "URL:".$querydata[0]."\n"."<br>\n"; 
echo "Navn:".$querydata[1]."\n"."<br>\n";
echo "E-mail:".$querydata[2]."\n"."<br>\n"; echo "Kommentar:".$querydata[3]."\n"."<br>\n";
echo "<br>\n";
}
}
Avatar billede repox Seniormester
08. april 2003 - 14:33 #5
Hvis vi nu siger at du har bygget din tabel op sådan her:
id | url | navn | mail | kommentar

så går jeg stærkt ud fra det ville virke hvis du skrev:

$resultat = mysql_query("SELECT * FROM dintabel ORDER BY id DESC");
if(!$resultat) {
echo "Der er ikke indtastet nogen kommentarer\n";
echo "<br>\n";
echo "<br>\n";
exit;
}

while($querydata = mysql_fetch_row($resultat)) {
     
echo "URL:".$querydata[url]."\n"."<br>\n"; 
echo "Navn:".$querydata[navn]."\n"."<br>\n";
echo "E-mail:".$querydata[mail]."\n"."<br>\n"; echo "Kommentar:".$querydata[kommentar]."\n"."<br>\n";
echo "<br>\n";
}
Avatar billede erikjacobsen Ekspert
08. april 2003 - 14:35 #6
De 2 forslag med if(!$resultat) ... virker ikke.
Avatar billede repox Seniormester
08. april 2003 - 14:37 #7
erikjacobsen... du har nok ret... Ville det ikke være bedre at bruge mysql_numrows ?
Avatar billede repox Seniormester
08. april 2003 - 14:39 #8
Så'n der, så ?

$resultat = mysql_query("SELECT * FROM dintabel ORDER BY id DESC");
$antal = mysql_numrows($resultat);

if($antal < 1) {

echo "Der er ikke indtastet nogen kommentarer\n";
echo "<br>\n";
echo "<br>\n";

}elseif ($antal > 0) {

while($querydata = mysql_fetch_row($resultat)) {
     
echo "URL:".$querydata[url]."\n"."<br>\n"; 
echo "Navn:".$querydata[navn]."\n"."<br>\n";
echo "E-mail:".$querydata[mail]."\n"."<br>\n"; echo "Kommentar:".$querydata[kommentar]."\n"."<br>\n";
echo "<br>\n";
}
};
Avatar billede sito Nybegynder
08. april 2003 - 14:39 #9
jensen, det har jeg prøvet, og det virker som beskrevt i spørgsmålet ikke, da man også får udskrevet linien med "ingen kommentarer"
exp, det virker ikke, får udskrevt at der ingen kommentarer er uanset om der er nogle eller ej...
Og chries, det virker, smukt. tak. opretter du et svar?
Avatar billede erikjacobsen Ekspert
08. april 2003 - 14:42 #10
Det hedder jo (fx)

if (mysql_num_rows($result) == 0) {

...eller hvad man nu har skrevet som variabel til mysql_query
Avatar billede sito Nybegynder
08. april 2003 - 14:44 #11
shady, jep, forsøg nummer 2 virker!
giv mig dog et svar, så jeg kan uddele nogle point :)
Avatar billede repox Seniormester
08. april 2003 - 14:45 #12
Så det med $antal = mysql_num_rows($result); er bare en omvej eller er if (mysql_num_rows($result) == 0) { det eneste korrekte ?
Avatar billede repox Seniormester
08. april 2003 - 14:45 #13
svar! :)
Avatar billede sito Nybegynder
08. april 2003 - 15:07 #14
Jeg ved ikke om det er en omvej, det virker jo, og jeg kunne ikke få det andet til at spille!
Point på vej :)
Avatar billede exp Juniormester
08. april 2003 - 15:17 #15
if (mysql_num_rows($result) == '0') {
  echo "Der er ikke indtastet nogen kommentarer\n";
  echo "<br>\n";
  echo "<br>\n";
} else {
  while($querydata = mysql_fetch_row($resultat)) {
    echo "URL:".$querydata[0]."\n"."<br>\n"; 
    echo "Navn:".$querydata[1]."\n"."<br>\n";
    echo "E-mail:".$querydata[2]."\n"."<br>\n";
    echo "Kommentar:".$querydata[3]."\n"."<br>\n";
    echo "<br>\n";
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester