Avatar billede kviller Novice
25. september 2004 - 03:11 Der er 7 kommentarer og
1 løsning

SQL forespørgsel tom

$Pic = "SELECT * FROM pictures WHERE ID='$img'";
$getPicResult = mysql_query($Pic,$db);

Så vil jeg have skrevet de forskellige felter ud som:

echo $aPic['felt1']
echo $aPic['felt2']
osv..

Men hvis der IKKE er nogen i databasen med ID nummer $img skal den komme med en tekst...

Jeg bruger på nuværende tidspunkt:
while ($aPic = mysql_fetch_array($getPicResult)){
echo $aPic['felt1'];
echo $aPic['felt2'];
};

men der er vel en smartere løsning når jeg nu VED at den kun kommer med et enkelt resultat.

Man kan jo ikke bruge
while {bla bla} else {echo "Intet billede";};

Håber i forstår hvad jeg mener...
Avatar billede kviller Novice
25. september 2004 - 03:14 #1
Prøvede også lige at lege lidt med

if (empty($aPic)) {
    echo 'Intet billede';}    ;
Men kan jo ikke indsætte den inden while og kan heller ikke sætte den i while...
Avatar billede 7th Praktikant
25. september 2004 - 06:48 #2
OK, lidt tidligt på morgenen, anyway vi vil jo teste om din forespørgsel returnere noget. Da man ikke kan fetch samme forespørgsel to gange i træk, kunne en løsning være at indsætte dit resultat i et nyt array, og så teste om dette er tomt.

$query = mysql_query("SELECT * FROM pictures WHERE ID = ".$img."") or die(mysql_error());

$result = array();

while ($row = mysql_fetch_array($query))
{
    $result[] = $row['felt1'];
    $result[] = $row['felt2'];
}

if (empty($result))
{
    echo "forespørgsel returnerede ingenting";
}

    else
    {
        echo implode("" , $result);
    }

Du kunne også vælge at smide din $query i en mysql_result, og så teste om den returnerer mere end en værdi, altså noget i retningen af...

if (mysql_result($query , 0) > 0) {
do something...
}

else {
show notice
}
Avatar billede kviller Novice
25. september 2004 - 07:02 #3
Hehe tidligt om morgenen, det glemte jeg lige (bor i new zealand, så klokken er 5 om eftermiddagen her) Tak skal du have, fik det til at virke....

www.nedjakob.dk
Avatar billede 7th Praktikant
25. september 2004 - 07:05 #4
Omkring mysql_result(), så ser den således ud...

$query = mysql_query("SELECT * FROM pictures WHERE ID = ".$img."") or die(mysql_error());

if (@mysql_result($query , 0) > 0) // @ foran skyldes, at vi ikke er interesseret i en fejlmeddelelse, såfremt $query er lig med 0
{
    while ($row = mysql_fetch_array($query))
    {
        echo $row['felt1']." ".$row['felt2'];
    }
}

    else
    {
        echo "forespørgsel returnerede ingenting";
    }
Avatar billede 7th Praktikant
25. september 2004 - 07:13 #5
Hvis du kan bruge det, så er her et svar :) Selv ville jeg personligt bruge mysql_result() metoden. Så sparer du ihvertfald et par mikro-nano-sekunder :)
Avatar billede 7th Praktikant
25. september 2004 - 07:13 #6
Svar.
Avatar billede kviller Novice
25. september 2004 - 07:20 #7
Jeg skal lige rode lidt mere med den for at finde ud af hvordan det virker helt.. Indtil videre bruger jeg.
while ($aPic = mysql_fetch_array($getPicResult)){
bla bla bla
$result = $Pic['ID']; };

if (empty($result))
{
    echo "forespørgsel returnerede ingenting";
};
Avatar billede 7th Praktikant
25. september 2004 - 07:30 #8
OK, tak for points. Bare skriv tilbage hvis du ikke kan finde ud af :)
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