Avatar billede mazey Praktikant
21. oktober 2004 - 00:36 Der er 16 kommentarer og
1 løsning

"if" sætning hvis databasen er tom

Hej...

Jeg har lavet et udtræk fra en database og tilført den med en while loop, så den viser hvert produkt i hver sin tabel... alt det er fint... men hvad nu hvis udtrækket til tabellen er tom, så vil jeg gerne have at der står eks. "ingen produkter"... Er det sådan at det skal laves noget lign.

<? if($data==""){
    echo "ingen produkter!";
    }else{   
            while ($data = mysql_fetch_row($foresp)) {

Det fungerer så bare ikke... hvordan forespørger jeg om at hvis tabellen er tom skal den echo "ingen produkter"
Avatar billede bojo Nybegynder
21. oktober 2004 - 00:47 #1
if( !$data ) {
  echo "ingen produkter";
} else {
...
...
Avatar billede mazey Praktikant
21. oktober 2004 - 00:50 #2
<? if(!$data){
    echo "Der er ingen referater!";
    }else{   
            while ($data = mysql_fetch_row($foresp)) {
            ?>


det funker ikke!... :(
Avatar billede mcgoat Nybegynder
21. oktober 2004 - 00:51 #3
du kan lave en:

if(mysql_num_rows(foresp)
{
// ingenting
}
Avatar billede mcgoat Nybegynder
21. oktober 2004 - 00:51 #4
du kan lave en:

if(mysql_num_rows($foresp))
{
// ingenting
}
Avatar billede mazey Praktikant
21. oktober 2004 - 00:52 #5
Det forstår jeg ikke mcgoat... jeg er lidt ny i feltet... :)
Avatar billede mcgoat Nybegynder
21. oktober 2004 - 00:52 #6
Aghrrr går ikke så godt...

du kan lave en:

if(mysql_num_rows($foresp) == 0)
{
// ingenting
}
else
{
// hej hej
}
Avatar billede mcgoat Nybegynder
21. oktober 2004 - 00:53 #7
<? if(mysql_num_rows($foresp) == 0){
    echo "ingen produkter!";
    }else{   
            while ($data = mysql_fetch_row($foresp)) {




virker deT?
Avatar billede mazey Praktikant
21. oktober 2004 - 00:55 #8
Perfect mcgoat.... nu skal du få point! :)
Avatar billede mcgoat Nybegynder
21. oktober 2004 - 00:55 #9
tak... godt det virkede :)
Avatar billede mcgoat Nybegynder
21. oktober 2004 - 00:56 #10
mysql_num_rows ser på hvor mange resultater der ligger i din $foresp.. og hvis der ligger 0 så er der selvfølgelig ingen produkter :)
Avatar billede bojo Nybegynder
21. oktober 2004 - 00:59 #11
$data = mysql_fetch_row($foresp));
if(!$data){
  echo "Der er ingen referater!";
} else {
    do {
          echo "der er";
      }
    while ($data = mysql_fetch_row($foresp));
}

men mcgoat's løsning er pænere
Avatar billede mcgoat Nybegynder
21. oktober 2004 - 01:01 #12
er meget godt med mysql_num_rows.. den kan man også bruge til at holde styr på hvor mange der egentlig er i db... :)
Avatar billede mcgoat Nybegynder
21. oktober 2004 - 01:01 #13
hvorfor bruge "do" i en "else" ?
Avatar billede mcgoat Nybegynder
21. oktober 2004 - 01:03 #14
hader "do" man behøver den slet ikke... hehe... kan da sagtens bruge while uden... :)
Avatar billede bojo Nybegynder
21. oktober 2004 - 01:32 #15
for at kunne spørge på $data først, dvs

hent data
er der data
ja så gør dette ( do )
hent data og gentag hvis der var nogen


det er ikke pænt, men nogen ting må løses på den måde og hvis mazey bedre kunne lide den måde, tjaa - som jeg skrev, din er meget pænere
Avatar billede nicklasb Nybegynder
21. oktober 2004 - 09:30 #16
enten er det fordi du ikke beskrive den så godt, eller også har du misforstået noget!
når du bruger do-while løkker er det ganske enkelt blot for at få handlingen udført mindst en gang (også selv om din syntax ikke opfylder dine krav).
¨
For at tage et dårligt eksempel:
Hvis man vil simulere et fyrværkeri, og der mindst SKAL skydes en kanon af, kan det skrives som;

do {
  //fyr kanonen af!
} while (der stadig er krudt tilbage);

Altså i forspørgelser hvor det ikke direkte vil fremgå hvor mange flere elementer du har arbejde med efter hver beabejdning.
Det kan for eksempel bruges ved beregning af primtal under en eller anden grænse, hvor du vil være sikker på at du mindst får et resultat ud, skønt det ligger over din fastsatte grænse.
Altså forspørgelser hvor næste syntax vil afhænge mere eller mindre 100% af din forrige beregning!
Avatar billede bojo Nybegynder
21. oktober 2004 - 11:39 #17
det var faktisk hvad jeg prøvede at beskrive :-)
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