Format

Eléphant du PHP | 424 Messages

17 oct. 2005, 19:49

Bonjour le forum !!!!

J'ai créé un tableau dynamique avec des infos de ma base sql dedans, j'ai fait un lien sur le N° de membre qui m'amene sur sa fiche membre.

Mon probleme : Quand le N° de membre est en chiffres pas de probleme par contre quand le N° de membre est sous la forme AA123456
voici le message d'erreur : Unknown column 'AA123456' in 'where clause'

D'ou vient mon probleme ???? merci pour vos réponses...

Ha oui ma colone numero de ma base de donnée est en Varchar 255

Mammouth du PHP | 19672 Messages

17 oct. 2005, 19:54

Il faudrait voir la requête pour être sûr, mais il y a fort à parier que tu n'as pas mis d'apostrophes pour encadrer la valeur:

Code : Tout sélectionner

... WHERE id_membre = 'valeur';
ou en PHP
$sql = "..... WHERE id_membre = '". $id ."';"
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 424 Messages

17 oct. 2005, 20:07

Je pense pourtant avoir bien mis l'encadrement :roll:
<?
include ("verification.php");
?>
<?php require_once('../../Connections/SAGIP.php'); ?>
<?php
$maxRows_contrat = 10;
$pageNum_contrat = 0;
if (isset($_GET['pageNum_contrat'])) {
  $pageNum_contrat = $_GET['pageNum_contrat'];
}
$startRow_contrat = $pageNum_contrat * $maxRows_contrat;

$colname_contrat = "1";
if (isset($_GET['numero'])) {
  $colname_contrat = (get_magic_quotes_gpc()) ? $_GET['numero'] : addslashes($_GET['numero']);
}
mysql_select_db($database_SAGIP, $SAGIP);
$query_contrat = sprintf("SELECT * FROM contrat WHERE numero = %s", $colname_contrat);
$query_limit_contrat = sprintf("%s LIMIT %d, %d", $query_contrat, $startRow_contrat, $maxRows_contrat);
$contrat = mysql_query($query_limit_contrat, $SAGIP) or die(mysql_error());
$row_contrat = mysql_fetch_assoc($contrat);

if (isset($_GET['totalRows_contrat'])) {
  $totalRows_contrat = $_GET['totalRows_contrat'];
} else {
  $all_contrat = mysql_query($query_contrat);
  $totalRows_contrat = mysql_num_rows($all_contrat);
}
$totalPages_contrat = ceil($totalRows_contrat/$maxRows_contrat)-1;
?>

    <? 
echo "<a href=\"accueil.php?utilisateur=$utilisateur&mot_de_passe=$mot_de_passe\">Accueil >></a>";
?>
    <br>
  </span></p>
  <p>&nbsp;</p>
  <table width="756" border="1" align="center" cellspacing="0" class="win_blue">
    <tr class="Text">
      <td><div align="center">Num contrat </div></td>
      <td><div align="center">Compagnie</div></td>
      <td><div align="center">Date d'effet</div></td>
      <td><div align="center">Situation</div></td>
      <td><div align="center">Mouvement</div></td>
      <td><div align="center">Branche</div></td>
    </tr>
    <?php do { ?>
    <tr class="Text">
      <td><div align="center"><a href="fiche_contrat_consult.php?numerocontrat=<?php echo $row_contrat['Numerocontrat']; ?>"><?php echo $row_contrat['Numerocontrat']; ?></a></div></td>
      <td><div align="center"><?php echo $row_contrat['compagnie']; ?></div></td>
      <td><div align="center"><?php echo $row_contrat['dateeffet']; ?></div></td>
      <td><div align="center"><?php echo $row_contrat['situation']; ?></div></td>
      <td><div align="center"><?php echo $row_contrat['mouvement']; ?></div></td>
      <td><div align="center"><?php echo $row_contrat['branche']; ?></div></td>
    </tr>
    <?php } while ($row_contrat = mysql_fetch_assoc($contrat)); ?>
  </table>
  <p><span class="Text">
    <? 
echo "<a href=\"fiche_client_consult.php?utilisateur=$utilisateur&mot_de_passe=$mot_de_passe&numero=$numero\">Retour >></a>";
?>

Mammouth du PHP | 19672 Messages

17 oct. 2005, 20:19

Ben non :
$query_contrat = sprintf("SELECT * FROM contrat WHERE numero = '%s'", $colname_contrat); 
Essaye comme ça maintenant.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

17 oct. 2005, 20:46

Ce n'est une question de goûts et de couleurs, mais il y a aussi la syntaxe suivante :
$query_contrat = "SELECT * FROM contrat WHERE numero = '".$colname_contrat."'";
J'ai indiqué cette alternative pour que chacun puisse choisir. ;)


NB : SELECT *, c'est pas bien... Il vaudrait mieux nommer les champs à sélectionner.

Eléphant du PHP | 424 Messages

17 oct. 2005, 20:49

Trop fort :D

Ca fonctionne impecable

wouaaaaaaaaouuuuuuuuu merciiiiiiiiiii :lol:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 oct. 2005, 08:54

Un petit [RESOLU] alors ? :roll:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer