Page 1 sur 2
Des enregistrements qui disparaissent ?
Posté : 11 sept. 2005, 21:13
par PhilFree
Bonjour à tous,
J'ai un phénomène étrange sur une table.
Depuis phpMyAdmin j'ai ajouté 2 enregistrements dans une table qui en comptait 39, il y en a donc maintenant 41.
Depuis phpMyAdmin, je peux lister tous les enregistrements sans aucun problème.
MAIS depuis le script php ci-dessous, je ne vois que 39 enregistrements.
Je ne comprends vraiment pas pourquoi.
Est-ce un bug connu ?
<?php
require("connect.php");
$result1 = mysql_query("SELECT * FROM `models` WHERE `model` LIKE '%'");
$nbenregistrements = mysql_num_rows($result1);
$urlsiteimage ='../images/';
echo "il y a $nbenregistrements articles dans la base";
echo "<table>";
while ($row=mysql_fetch_array($result1)){
echo "<tr><td><b>$row[model]</b></td><td><img src='" . $urlsiteimage . $row[picture] . "'></td></tr>";
}
echo "</table>";
?>
Posté : 11 sept. 2005, 21:16
par HD
tes nouveaux enregistrements ne repsectent probablement pas la condition
WHERE `model` LIKE '%'
(que je ne comprend d'ailleurs pas)
Posté : 11 sept. 2005, 21:20
par PhilFree
tes nouveaux enregistrements ne repsectent probablement pas la condition
WHERE `model` LIKE '%'
(que je ne comprend d'ailleurs pas)
Salut,
Tu ne comprends pas LIKE '%' ?
LIKE 'A%' signifie tous les enregistrements commençant par A
LIKE '%' ne siginifie-t-il pas TOUS les enregistrements ?
Posté : 11 sept. 2005, 21:35
par Cyrano
LIKE '%' ne siginifie-t-il pas TOUS les enregistrements ?
Dans ce cas, cette clause est complètement inutile, le SELECT * comprenant déjà tous les enregistrements de toutes façon

Posté : 11 sept. 2005, 21:44
par PhilFree
Salut Cyrano,
Merci de t'intéresser à mon mystère !
Dans ce cas, cette clause est complètement inutile, le SELECT * comprenant déjà tous les enregistrements de toutes façon

Je sais, mais avec:
$result1 = mysql_query("SELECT * FROM `models`");
J'ai exactement le même problème.
J'avais conservé le:
WHERE `model` LIKE '%'
Parce qu'ensuite je veux n'afficher que les enregistrements du type:
WHERE `model` LIKE '94%' (par exemple)

Posté : 11 sept. 2005, 21:46
par Vaedan
alors le probleme ne vient pas de ta requete SQL... certainement de tes conditions d'affichage ou encore de tes insertions dans la bdd.
Posté : 11 sept. 2005, 21:52
par PhilFree
alors le probleme ne vient pas de ta requete SQL... certainement de tes conditions d'affichage ou encore de tes insertions dans la bdd.
L'insertion dans la base des 2 nouveaux enregistrements a été faites via phpMyAdmin (comme les 39 autres d'ailleurs), donc l'insertion est en principe correcte.
Qu'entends-tu par conditions d'affichage ?
Ceci: $result1 = mysql_query("SELECT * FROM `models`"); ??
Posté : 11 sept. 2005, 21:52
par Cyrano
Dans ce cas, il faudrait échapper le second % qui doit être interprété comme un caractère et non comme un joker :
Mais tu as aussi les
REGEXP en SQL qui pourraient t'aider, peut-être à explorer ? Tu as aussi dans cette même doc des éléments intéressants sur les
clauses WHERE
Posté : 11 sept. 2005, 21:59
par PhilFree
Dans ce cas, il faudrait échapper le second % qui doit être interprété comme un caractère et non comme un joker :
Merci Cyrano,
Mais avec:
SELECT * FROM `models`
ça ne m'affiche que les 39 enregistrements, les 2 enregistrements que je viens de faire via phpMyAdmin n'apparaissent pas, pourquoi ?

Posté : 11 sept. 2005, 22:03
par HD
comme te l'a dit Vaedan
alors le probleme ne vient pas de ta requete SQL... (..) ou encore de tes insertions dans la bdd.
verifie alors ta bd et si les nouveaux enregistrements ont la meme structure que les anciens, s'il n y a pas de problemes au niveau de la cle primaire...
Posté : 11 sept. 2005, 22:09
par PhilFree
J'ai vérifié ma BD avec:
CHECK TABLE `models`
réponse:
check status OK

Posté : 11 sept. 2005, 22:16
par Cyrano
Et si tu rajoutes des éléments, est-ce que leur nombre augmente ou bien ils disparaissent aussi à leur tour ?
Je téléphone immédiatement à Mulder et Scully, le cas est étrange 
Posté : 11 sept. 2005, 22:20
par PhilFree
Si j'ajoute de nouveaux enregistrements depuis phpMyAdmin, phpMyAdmin me permet de les voir, les trier, phpMyAdmin me dit bien, que la table est composée de 41, puis 42, puis 43 enregistrements.
Je peux les éditer, les effacer depuis phpMyAdmin, MAIS lorsque je lance mon script PHP, ils ne sont pas là

Posté : 11 sept. 2005, 22:21
par Vaedan
bah alors donne nous ton script ... là on y peut rien
Posté : 11 sept. 2005, 22:21
par Cyrano
Mais que fait la police ?
Dis, es-tu bien sûr de travailler sur la même table, voire sur la même base de données ?
