bonsoir à tous,

j'ai un gros doute sur quelque chose.

si j’utilise ces instruction sur une page php

$select4 = "SELECT `flightnum`,'enabled' FROM `tracker_schedules` WHERE `enabled` ='1' AND `flightnum` LIKE '%".$schedule4."%'";
        $result4 = mysql_query($select4,$link) or die ('Erreur : '.mysql_error() );
        $total4 = mysql_num_rows($result4); 
        if($total4) 
            {   
                while(($row = mysql_fetch_array($result4))) 
                    {
                        $lecf=$row"flightnum"];
                        $enabled=$row"enabled"];
                        echo 'test avant lecture num';
                        echo '<br>';
                        echo $schedule4;
                        echo '<br>';
                        if ($cpt2=$row"flightnum"])
                            {
                                echo 'total4';
                                echo $total4;
                                echo '<br>';
                                echo 'enabled';
                                echo $enabled;
                                echo '<br>';
                                echo 'num';
                                echo $lecf;
                                echo '<br>';
                                $antirec=1;
                                echo 'aprés avant lecture num';
                                echo '<br>';
                            }
                    }
            }

j'ai ça en réponse

test avant lecture num
-REV-MD11-3-
total41
enabledenabled
num-REV-MD11-3-001-048
aprés avant lecture num

si j'envoie cette requête sur php my admin

SELECT * 
FROM `tracker_schedules` 
WHERE `enabled` =1
AND `flightnum` LIKE '-REV-MD11-3-'

php my admin me réponde

MySQL n'a retourné aucun enregistrement. (traitement: 0.0007 sec.)

pourquoi les deux se contredisent,

que veux dire if (total4), cela ne veux pas dire s'il y a une correspondance??

merci d'avance d'éclairer ma lanterne.

@+ Flo

8 réponses


elRingo
Réponse acceptée

bonsoir

quand tu mets if(variable) signifie que tu fais une verification si c'est vraie ou non

if(total4) ===> if(total4 == true)

c'est a dire, tu verifies si tu as des enregistrements ou non en retour de ta requête

Salut flo,

je suppose que ton $schedule4 contient '-REV-MD11-3-' ?

Sinon la différence c'est que sur ta page php pour la propriété enabled tu envoies une String '1' et en mysql tu envoies un int 1.

Si cela peut aider ;)

flo3376
Auteur

pas trop sur d'avoir compris, cela voudrait dire que dans php my admin, il me répond 0 réponse et php my admin comprend bien, alors que php, lui quand on lui envoie 0 réponse, il vois qu'il y a une réponse mais n'i pas capable de l'interprété?

Coucou et avec :

SELECT * 
FROM `tracker_schedules` 
WHERE `enabled` =1
AND `flightnum` LIKE '%-REV-MD11-3-%'

? :)

Bonsoir,
Effectivement j'aurai fait comme vash60700 pour le coup ^^
le LIKE sans les % je sais pas si ça sert, autant faire un égal !
Après moi et le langage SQL ça fait deux!...

bonjour
je confirme vash60700 et Lotfi, ton like ne sert a rien sans les %
la règle est très simple

`flightnum` LIKE '%a' // renvoie tous les flightnum qui se terminent par a
`flightnum` LIKE 'a%' // renvoie tous les flightnum qui se commencent par a
`flightnum` LIKE '%a%' // renvoie tous les flightnum qui se contiennent a
flo3376
Auteur

je crois que l'on c'est égaré,
alors l'instruction que j'utilise marche très bien, n'en déplaise à certain, car il y a une donnée que vous avez pas, c'est que flightnum quand il est complé ressemble à ça: FFS2 -REV-MD11-3- 1-1

mais merci elRingo pour l'explication, je la garde sous le coude car elle risque de me servir

je demandé juste ce que voulait dire "if (total4)"

1-le serveur à répondu quelque chose
2-le serveur à trouver quelque chose
3-ça veux dire totalement autre chose

flo3376
Auteur

merci beaucoup