Varible var_dump NULL

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 : Varible var_dump NULL

Re: Varible var_dump NULL

par moogli » 20 sept. 2011, 00:29

niveau d'erreur ?

create table des tables concernées ?
Jeux de donnée ?

si $datat === false c'est que le mysql_fetch_array retourne false !

j'ajoute que tes messages d'erreur sur les mysql_query ne peuvent fonctionner vu que la variable $sql inclue dedans n'existe pas !
<?php $reqconnect = mysql_query($sqlconnect) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); ?>
d'ailleurs tu parle de boucle mais la seule qu'il y a dans le code n'est pas liée à la variable $rrr, est ce de la boucle foreach dont tu parle ?

Je viens de penser au fait que mysql_fetch_array retourne false lorsqu'il n'y a plus de ligne à lire, mais aussi quand il n'y en a pas. Peux être est ce le problème tous simplement.

pour le vérifier => mysql_num_rows()

par exemple :
<?php
              $sqlconnect = "SELECT * FROM search WHERE champ='$name'";
$reqconnect = mysql_query($sqlconnect) or die('Erreur SQL !<br>'.$sqlconnect.'<br>'.mysql_error());
var_dump($reqconnect); // vérifie que mysql_query fait bien son job !
echo 'nb tuple : ',mysql_num_rows($reqconnect); // affiche le nombre de tuple retourné par la dernière requête. 
?>
@+

Re: Varible var_dump NULL

par thomix » 19 sept. 2011, 22:01

Salut

Je ne pence pas que ce soit le mysql_fetch_array car a la première boucle j'ai bien un résultat de la base la deuxième boucle est vide année modele ,troisième des résultats , et quatrième des résultats aussi alors que dans la base tout est la sous le champ sel_nom.... , si cela viendrais d'un problème de requête il n'y aurait aucun résultat des la première boucle.

Ce qui est plus étrange encore c'est que le if ne fonctionne pas :

Code : Tout sélectionner

$rrr = $datat["sel_nom"]; if($rrr == 'Année-Modèle') {$rrr="Année-Modèle min";}
Pour ce script $rrr ne vaut jamais Année-Modèle alors que je fais un echo il met répond :

1 boucle : $rrr = Kilométrage
2 boucle : $rrr = Année-Modèle
3 boucle : $rrr = Énergie
4 boucle : $rrr = Carburant

Je suis vraiment perdu :-(
C'est la première fois que cela m'arrive sa fait 5 jour je cherche ...

Re: Varible var_dump NULL

par moogli » 19 sept. 2011, 19:39

ce qui doit se passer c'est qu'il doit y avoir des champs sel_nom vide dans la base ?

ce que stealth35 indique c'est que $rrr provient de la requête SQL et qu'il donc normale de comparer $datat à ce que tu aura dans $rr.

tu pourra ainsi voir si tu ne demande pas un index qui n'existe où simplement si la valeur d'existe pas dans la table
<?php
$rrr = $datat["sel_nom"]; // <= l'affectation ici indique que si l'on met un var_dump($rrr); à la ligne suivant $datat['sel_nom'] vaut null ou n'existe pas et rapport d'erreur différent de E_ALL !
                  if($rrr == 'Année-Modèle')
                  {$rrr="Année-Modèle min";}
?>
maintenant que ce passe t il pour tout les cas où $rrr est différent de 'Année-Modèle' ? (ce qui est le cas de tout les exemple que tu indique (sauf le false débattu plus bas) ?
vérifie ton niveau d'erreur qui n'est peut etre pas bon pour du développement (en php 5 <5.4 c'est E_ALL|E_STRICT) tu peux regarder la fonction error_reporting pour plus d'info.

si le var_dump($datat); indique false c'est qu'il y a un problème le mysql_fetch_array() ne se déroule pas bien et retourne une erreur (regarde aussi la doc de la fonction pour en savoir plus mysql_fetch_array

edit : retourne quand il n'y a plus de ligne à lire dans le retour de mysql_query et aussi quand il n'y pas (voir réponse plus bas).

Vérifie le niveau des rapport d'erreur (phpinfo()) et corrige le au besoin ça devrait beaucoup t'aider.

@+

Re: Varible var_dump NULL

par Thomix » 19 sept. 2011, 18:58

Personne ne peut maider car la je sèche

Re: Varible var_dump NULL

par thomix » 19 sept. 2011, 11:59

Bonjour,

j'ai bien essayer var_dump($datat);

ce qui me donne le résultat suivant :

array(8) { [0]=> string(2) "66" ["id_sea"]=> string(2) "66" [1]=> string(1) "3" ["id_cat"]=> string(1) "3" [2]=> string(6) "KM max" ["sel_nom"]=> string(6) "KM max" [3]=> string(12) "Kilométrage" ["champ"]=> string(12) "Kilométrage" }


bool(false)


array(8) { [0]=> string(3) "190" ["id_sea"]=> string(3) "190" [1]=> string(1) "2" ["id_cat"]=> string(1) "2" [2]=> string(7) "Energie" ["sel_nom"]=> string(7) "Energie" [3]=> string(7) "Energie" ["champ"]=> string(7) "Energie" }


array(8) { [0]=> string(3) "189" ["id_sea"]=> string(3) "189" [1]=> string(1) "2" ["id_cat"]=> string(1) "2" [2]=> string(16) "Boite de vitesse" ["sel_nom"]=> string(16) "Boite de vitesse" [3]=> string(5) "Boite" ["champ"]=> string(5) "Boite" }

Dans tout sa je ne retrouve pas mon champ c 'est le deuxième champ qui est bool(false) , comment je peux régler ce problème ?
Merci a stealt pour la réponse :-)

Re: Varible var_dump NULL

par stealth35 » 19 sept. 2011, 03:08

fait un var_dump($datat); plutot

Varible var_dump NULL

par thomix » 19 sept. 2011, 03:05

Bonjour

j'ai modifier un script et un problème est survenue , la variable $rrr me retourne NULL lors d'un test avec var dump.

Voici mon code :

Code : Tout sélectionner

function display_noms($array) { foreach ($array as $row) { $id= htmlspecialchars($row['id_for'], ENT_QUOTES); $form_name = "form".$id; if (!empty($_SESSION[$form_name])) { $value = stripslashes(htmlspecialchars($_SESSION[$form_name], ENT_QUOTES)); } else $value = ''; $name = stripslashes(htmlspecialchars($row['nom_for'], ENT_QUOTES)); $uni= stripslashes(htmlspecialchars($row['uni_for'], ENT_QUOTES)); echo '<p class="form_left">'; if (isset($_SESSION['error'][''. $form_name .''])) echo '<span class="error">'; echo '<label for="'. $name .'">'. $name .' :</label>'; if (isset($_SESSION['error'][''. $form_name .''])) echo '</span>'; echo '</p>'; $sqlconnect = "SELECT * FROM search WHERE champ='$name'"; $reqconnect = mysql_query($sqlconnect) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $datat = mysql_fetch_array($reqconnect); $rrr = $datat["sel_nom"]; if($rrr == 'Année-Modèle') {$rrr="Année-Modèle min";} var_dump($rrr); ?> <p class="form_right_select"> <label for="<?php echo"$name"; ?>"></label> <select name="<?php echo"$name"; ?>" id="<?php echo"$name"; ?>" class="av_input"> <?php $sqlconnect1 = "SELECT * FROM select_valeurs WHERE sel_nom='$rrr'"; $reqconnect1 = mysql_query($sqlconnect1) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); while($dataw = mysql_fetch_array($reqconnect1)) { $valeur = $dataw["valeur"]; echo"<option value=\"$valeur\">$valeur</option> ";} ?> </select> <span class="info_form"> </span> </p> <?php /* echo ' <input type="text" id="'. $name .'" class="av_input" name="'. $form_name .'" value="'. $value .'" /> &nbsp;<span class="info_form">'. $uni .''; */ } }
J'ai chercher longtemps d’où le problème pourrait venir mais j'ai pas trouver ... le truc bizarre c'est que $rrr lors de la première boucle ressort bien n résultat qui n'est pas NULL

Je vous remercie de votre futur aide