Avatar billede Allankc Nybegynder
01. juli 2009 - 02:36 Der er 10 kommentarer

tom sql besked

jeg er lige lidt fortabt her hvis der er forslag til løsninger høres de meget meget gerne.

det som sker er at hvis $antal kommer tilbage tomt så har jeg bare en blank side + min footer ik blir loadet..
her skulle beskeden så træde i kraft men det gør den bare ikke.

det behøver ik være et konkret svar jeg er bare blevet blind på den igen igen.

men alle er velkomne til at bidrage - der også point for at gi mig en korrekt ledetråd.



                      // kategori og antal i kategorien samt visfra post og antal udtræk per side                    if ($kategori != NULL) {
                    $antal = mysql_result(mysql_query("SELECT COUNT(*) FROM produkter WHERE kategori='".$kategori."'"),0) or die(mysql_error());
                    $vis_fra = (isset($_GET["visfra"]) && $_GET["visfra"] < $antal) ? $_GET["visfra"] : 0;
                    $sql = mysql_query("SELECT * FROM produkter WHERE kategori='".$kategori."' ORDER BY id DESC limit $vis_fra, $pr_side") or die(mysql_error());
                    }
                      // søgning resultater og antal ud fra samme som oven over.                    if ($search != NULL)
                    {
                    $antal = mysql_result(mysql_query("SELECT COUNT(*) FROM produkter WHERE title LIKE '%".$search."%'"),0) or die(mysql_error());
                    $vis_fra = (isset($_GET["visfra"]) && $_GET["visfra"] < $antal) ? $_GET["visfra"] : 0;   
                    $sql = mysql_query("SELECT * FROM produkter WHERE title LIKE '%".$search."%' ORDER BY id DESC limit $vis_fra, $pr_side") or die(mysql_error());
                    }   
                   
                    // Så skal vi ha en besked ved 0 Resultater --> 
                    if ($antal == 0)
                    {
                    echo "<tr><td>Der er i øjeblikket ingenting i denne kategori.<br /><a href='java script:history.back()'>";
                    echo "<img src='gfx/icons/arrow_left.png' border='0' alt=' Tilbage ' title=' Tilbage ' /></a></td></tr>";
                    }
                    // 0 Rækker & der er blevet søgt -->
                    if ($antal == 0 && $search != NULL) {
                    echo "<tr><td>Din søgning gav ingen resultater.<br /><a href='java script:history.back()'><img src='gfx/icons/arrow_left.png' border='0' alt=' Tilbage ' title=' Tilbage ' /></a></td></tr>";
                    }
                   
                   
                   
                  // Udskrivning af resultater
                    while ($row = mysql_fetch_array($sql)) {
Avatar billede dstjulle Nybegynder
01. juli 2009 - 07:45 #1
kunne du ikke bruge

if (empty($kateori){
  echo " der er en fejl i dine data ";
}
Avatar billede majbom Novice
01. juli 2009 - 08:11 #2
dvs hvis hverken kategori eller search er sat, kommer der blank side?
Avatar billede Allankc Nybegynder
01. juli 2009 - 18:14 #3
det der sker er at hvis sql retunere NULL (ingenting)
så stopper alt derfra og ned- min footer blir heller ik inkluderet og alt der er skrevet efter min while() er væk.

hvis jeg skulle bruge en NULL værdi på $kategori ville det nok være -->
if (empty($kategori)) { echo "Der er ikke valgt en kategori!"; }

$kategori blir sendt via URL'et - jeg tror det er sql og while jeg har noget knas på men den gir mig hverken warning eller fejl og jeg har php errors på og det hele - meget mystisk!
Avatar billede Allankc Nybegynder
01. juli 2009 - 18:16 #4
forresten jeg vil lige sige endnu en gang - at hvis den finder noget på din søgning eller der er noget i den valgte kategori - virker scriptet uden problemmer.

så det er kun hvis sql retunere NULL at jeg har probs med.
Avatar billede majbom Novice
01. juli 2009 - 20:49 #5
hvis sql returnerer null, så er antal vel også 0?
Avatar billede Allankc Nybegynder
02. juli 2009 - 04:58 #6
Korrekt

man burde rent faktisk få samme resultat ud af:

if ($sql == 0) { besked }
if ($sql == 0 && $search != NULL) { besked }


det er forsøgt og uden gevindst.

så jeg fatter ik helt hvor jeg er gået galt henne.
Avatar billede majbom Novice
02. juli 2009 - 07:56 #7
$antal er jo ikke lig 0, hvis den ikke kommer ind i nogle af dine if-sætninger, medmindre du sætter den til 0 inden du kommer så langt.

desuden hvil den gå ind i begge de 2 sidste if-sætninger hvis $search != NULL, da den første kun tjekker om $antal = 0 og det gørden også i den næste...
Avatar billede Allankc Nybegynder
08. august 2009 - 20:11 #8
if ($sql == 0 && $search == NULL) { besked }
if ($sql == 0 && $search != NULL) { besked }

det er korrekt men det er flyfucking som kan ændres til sidst de beskeder - bemærk at der bruges COUNT - så derfor burde resultatet vende tilbage som 0 og skal ikke defineres nogle steder da det allerede er gjort ved brug af COUNT i query'en

hvis du i så fald mener noget andet er der så noget dokumentation på det et sted så jeg kan læse mig frem til hvorfor count ikke skulle virke i denne sammenhæng?
Avatar billede jantzen88 Nybegynder
08. august 2009 - 22:03 #9
Du kunne teste med mysql_num_rows(); og se om det hjælper

$res_antal = mysql_query("SELECT * FROM produkter WHERE title LIKE '%".$search."%'") or die(mysql_error());
$antal = mysql_num_rows($res_antal);
Avatar billede jantzen88 Nybegynder
08. august 2009 - 22:04 #10
Lidt kortere :)

$antal = mysql_num_rows(mysql_query("SELECT * FROM produkter WHERE title LIKE '%".$search."%'")) or die(mysql_error());
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