Des enregistrements qui disparaissent ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Des enregistrements qui disparaissent ?

par PhilFree » 11 sept. 2005, 23:55

J'ai trouvé ! :D

Mon crétin d'hébergeur a changé le serveur qui abrite le site en question et la base de données.

Ils ont transféré la base de données sur le nouveau serveur, mais ils ont laissé l'ancienne sur l'ancien serveur.

Je me retrouvais donc bien avec 2 bases portant le même nom, avec les mêmes droits d'accès, mais l'ancienne base n'est bien sûr plus en localhost...

Bref.. le mytère n'en est plus un.

Merci de votre attention :wink:

par PhilFree » 11 sept. 2005, 22:45

Mais tout mon script est là, il n'y a pas une ligne de plus:
<?php
$serveur="localhost";
$user="xxxxxxxx"; //censuré
$password="xxxxxxxx"; //mot de passe censuré aussi
$base="xxxxxxxxx"; //nom de la base de donnée censurée

$connexion = mysql_connect($serveur,$user,$password) or die("impossible de se connecter : ". mysql_error());

$db = mysql_select_db($base, $connexion) or die("impossible de sélectionner la base : ". mysql_error());

$result1 = mysql_query("SELECT * FROM `models`");
$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>";
?>

par Cyrano » 11 sept. 2005, 22:36

Oui, la 2.6.2, mais ça ne change rien, si tu as tous les enregistrements qui apparaîssent normalement avec pma mais pas avec ton script PHP, alors il doit y avoir un os dans ton script indépendament de la requête.

par PhilFree » 11 sept. 2005, 22:33

Dis, es-tu bien sûr de travailler sur la même table, voire sur la même base de données ? :-k
Je n'ai qu'une seule base de données, elle est composée de 5 tables qui portent toutes des noms différents:
art,dl,membres,models et passwordpv

Je suis comme toi, je ne comprends vraiment plus rien :shock:

Est-ce que phpMyAdmin est buggé ?
La version est: phpMyAdmin 2.6.1-pl3

Utilises-tu phpMyAdmin ?

par Cyrano » 11 sept. 2005, 22:21

Mais que fait la police ? :langue:

Dis, es-tu bien sûr de travailler sur la même table, voire sur la même base de données ? :-k

par Vaedan » 11 sept. 2005, 22:21

bah alors donne nous ton script ... là on y peut rien

par PhilFree » 11 sept. 2005, 22:20

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à :roll:

par Cyrano » 11 sept. 2005, 22:16

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 :langue:

par PhilFree » 11 sept. 2005, 22:09

J'ai vérifié ma BD avec:

CHECK TABLE `models`

réponse:

check status OK :roll:

par HD » 11 sept. 2005, 22:03

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...

par PhilFree » 11 sept. 2005, 21:59

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 ? :cry:

par Cyrano » 11 sept. 2005, 21:52

Dans ce cas, il faudrait échapper le second % qui doit être interprété comme un caractère et non comme un joker :

Code : Tout sélectionner

SELECT * FROM `models` WHERE `model` LIKE '%\%'
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

par PhilFree » 11 sept. 2005, 21:52

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`"); ??

par Vaedan » 11 sept. 2005, 21:46

alors le probleme ne vient pas de ta requete SQL... certainement de tes conditions d'affichage ou encore de tes insertions dans la bdd.

par PhilFree » 11 sept. 2005, 21:44

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 :-k
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) :wink: