Concaténation PHP/MYSQL

Fermé
touillettes - 3 août 2009 à 09:36
 touillettes - 3 août 2009 à 10:40
Bonjour,
j'ai un ptit probléme j'éssaye de faire une interrogation de ma BDD mais il doit y avoir un passage ou sa "déconne" enfaite j'ai un formulaire que voici :
<?php
include("_menu.php");
?>

<p> Recherche rapide : </p><br>

<form action="resultat.php" method="post">
Rechercher par <select name="rechercherpar">
<option> </option>
<option>host</option>
<option>host_ph</option>
<option>infra</option>
<option>metier</option>
<option>os</option>
<option>etat_prod</option>
<option>svc_iogrp</option>
</select>
Mot clé<input type="text" name="mot_cle">
<input type="submit" value="Rechercher">



et je reçois la réponse dans cette page



<?php
include("_menu.php");
connect();
selectBase();
echo "
<table width='50%' cellspacing='0' cellpadding='0' align='center'
class='tabQuadrille'>";
echo "
<tr class='enTeteTabQuad'>
<td colspan='11' align='center'><strong> volumetrie de la recherche : </strong>
</td>
</tr>";
echo "
<tr class='ligneTabQuad'>
<td width='25%' align='center'><i><strong>DMX</strong></i></td>
<td width='25%' align='center'><i><strong>Svc High</strong></i></td>
<td width='25%' align='center'><i><strong>Svc Mid</strong></i></td>
<td width='25%' align='center'><i><strong>Total</strong></i></td>
</td>
</tr>";

$rechercherpar=$_POST['rechercherpar'];
$motclef=$_POST['mot_cle'];

$req="SELECT sum(total) as voltot, sum(dmx) as voldmx, sum(svc_high) as volhigh , sum(svc_mid) as volmid FROM `san` WHERE .$rechercherpar. = ".$motclef."";
$rsite=mysql_query($req);
$lsite=mysql_fetch_array($rsite);

while($lsite!=FALSE)
{

$voltotal=$lsite['voltot'];
$voldmx=$lsite['voldmx'];
$volhigh=$lsite['volhigh'];
$volmid=$lsite['volmid'];
echo "
<tr class='ligneTabQuad'>
<td width='25%' align='center'>$voldmx Go</td>
<td width='25%' align='center'>$volhigh Go</td>
<td width='25%' align='center'>$volmid Go</td>
<td width='25%' align='center'>$voltotal Go</td>
</tr>";
$lsite=mysql_fetch_array($rsite);
}

function search(){

$champ=$_POST['rechercherpar'];
$mot=$_POST['mot_cle'];

echo "
<table width='100%' cellspacing='0' cellpadding='0' align='center'
class='tabQuadrille'>";
echo "
<tr class='enTeteTabQuad'>
<td colspan='11' align='left'><strong>Resultat recherche : </strong>
</td>
</tr>";
echo "
<tr class='ligneTabQuad'>
<td width='9,09%' align='center'><i><strong>Host</strong></i></td>
<td width='9,09%' align='center'><i><strong>Site</strong></i>
<td width='9,09%' align='center'><i><strong>Host Physique</strong></i>
<td width='9,09%' align='center'><i><strong>infra</strong></i></td>
<td width='9,09%' align='center'><i><strong>Metier</strong></i></td>
<td width='11%' align='center'><i><strong>Etat Prod</strong></i>
<td width='9,09%' align='center'><i><strong>DMX</strong></i></td>
<td width='9,09%' align='center'><i><strong>Svc High</strong></i></td>
<td width='9,09%' align='center'><i><strong>Svc Mid</strong></i></td>
<td width='9,09%' align='center'><i><strong>Total</strong></i></td>
<td width='9,09%' align='center'><i><strong>Svc IO groupe</strong></i></td>
</td>
</tr>";

$resultat=mysql_query('select * from san where '.$champ.' = "'.$mot.'"');
while($ligne=mysql_fetch_array($resultat))
{
$host=$ligne['host'];
$os=$ligne['os'];
$hostph=$ligne['host_ph'];
$infra=$ligne['infra'];
$metier=$ligne['metier'];
$site=$ligne['site'];
$etat=$ligne['etat_prod'];
$dmx=$ligne['dmx'];
$high=$ligne['svc_high'];
$mid=$ligne['svc_mid'];
$total=$ligne['total'];
$iogrp=$ligne['svc_iogrp'];

echo "
<tr class='ligneTabQuad'>
<td width='9,09%' align='left'>$host</td>
<td width='9,09%' align='left'>$site</td>
<td width='9,09%' align='left'>$hostph</td>
<td width='9,09%' align='left'>$infra</td>
<td width='9,09%' align='left'>$metier</td>
<td width='11%' align='left'>$etat</td>
<td width='9,09%' align='left'>$dmx</td>
<td width='9,09%' align='left'>$high</td>
<td width='9,09%' align='left'>$mid</td>
<td width='9,09%' align='left'>$total</td>
<td width='9,09%' align='left'>$iogrp</td>
</tr>";
$ligne=mysql_fetch_array($resultat);
}
}
search();
?>
voila le code est la du coup je vous énonce mes 2 problémes :)

le premier :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\tools\EasyPHP 3.0\www\SANDW\resultat.php on line 27 ( ligne en gras ^^)

le deuxiéme
est que j'aimerai remplacer
$resultat=mysql_query('select * from san where '.$champ.' = "'.$mot.'"');
par un LIKE a la place du = mais je n'y arrive absolument pas :(

Merci d'avance
A voir également:

4 réponses

jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 186
3 août 2009 à 09:56
Déjà remplace ta ligne
$rsite=mysql_query($req); 


par
$rsite=mysql_query($req) or die(mysql_error()); 


ce qui aura pour effet de te dire si il y a une erreur dans ta requête SQL, et si il y en a une, cela te la dira (grossièrement ^^)

ensuite pour ta première requête, ca serait plutôt quelquechose comem ceci :
$req="SELECT sum(total) as voltot, sum(dmx) as voldmx, sum(svc_high) as volhigh , sum(svc_mid) as volmid FROM `san` WHERE $rechercherpar = '$motclef'"; 


et pour la seconde requête

$resultat=mysql_query("select * from san where $champ LIKE '%$mot%' "); 

(les % permettent de dire que tu peux avoir n'importe quoi avant et après, si tu en veux pas tu les enlèves ^^
0
Sur ma premiére requete :
$req="SELECT sum(total) as voltot, sum(dmx) as voldmx, sum(svc_high) as volhigh , sum(svc_mid) as volmid FROM `san` WHERE $rechercherpar LIKE '%$motclef'";

j'éssaye de mettre un like mais je n'y arrive pas auriez vous une iddée du pourquoi du comment ?
0
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 186
3 août 2009 à 10:36
T'as bien fais le die(mysql_error()) ?
si oui, il devrait te donner l'erreur dans ta requete ...
0
C'est Bon Sa marche Merci ^^
0