Probleme affichage requete

redshark59
Invité n'ayant pas de compte PHPfrance

10 avr. 2014, 09:42

Bonjour à tous, j'ai un petit script PHP qui me permet de chercher dans ma base MySQL voir si un nom y est présent, mon code detecte bien cela mais je n'arrive pas du tout a afficher le nom qui ressort de la base de donnée, par exemple si je tape "ga" j'aimerais qu'il me ressorte tous les noms commençant par ça. Mon problème se tourne donc vers l'affichage des résultats, le code en lui meme fonctionne, merci.

<?php
// database settings
$Host = 'localhost';
$User = 'root';
$Pass = '';
$Base = 'annuaire';

// mysql table :
$Table = 'u557';
// field used for search
$champ = 'Nom';
// number of chars to display
$NB_carac = 100;
?>
<form method="post" action="<?=$PHP_SELF?>">
<input type="text" name="Psearch"><br />
<input type="submit" value="Search">
</form>
<br />

<?php
if(isset($_POST['Psearch']) && !empty($_POST['Psearch'])) {

    mysql_connect($Host, $User, $Pass);
    mysql_select_db($Base);

    $search = trim($_POST['Psearch']);
    $T = explode(' ', $search);
    $count = count($T);

    // build sql request
    if($count > 1) {
      $s = " $champ LIKE '%$search%' ";
      for($i=0; $i<$count; $i++) {
          if(empty($T[$i])) continue;
        $s .= " OR $champ LIKE '%$T[$i]%' ";
        $Ns[] = $T[$i];
        }
      }
    else {
      $s = " $champ LIKE '%$search%' ";
      $Ns[] = $search;
      }
    $Requete = "SELECT $champ from $Table WHERE $s";
    $Env = mysql_query($Requete) or die (mysql_error());

    if(mysql_num_rows($Env) == 0) $Error = 'No results';
    else $Error = FALSE;
    echo $Error;

    echo '<table border="1">';
    $i = 1;
    while ($O = mysql_fetch_row($Env)) {
      echo '<tr><td>';
      echo "<u>Results $i</u> <br /><br />";

      $Nom = $row[0];
	echo "<tr>\n
	<td>$Nom</td&gt\n
	
	</tr>\n";

        echo '</td></tr>';
        }
    echo '</table><br />';
    }
?>

ViPHP
ViPHP | 3607 Messages

10 avr. 2014, 14:29

Bonjour,

Le problème vient à priori de cette ligne :
    while ($O = mysql_fetch_row($Env)) {
en effet cette variable n'est pas utilisée dans la suite du code...

Cordialement,

Mammouth du PHP | 2278 Messages

10 avr. 2014, 14:35

On ne peut pas dire qu'un code qui se sert de mysql est correct. Mysql est obsolete et DOIT être remplacé soit par mysqli soit par PDO (cf doc officielle de PHP sur ce point).
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD