Page 1 sur 2

Erreur

Posté : 31 janv. 2006, 12:12
par jacob
Bonjour à tous.

Je fais cette requete :
 <? 
  $test=$_GET['numero_contrat'];
  
	$sqldid = 'select id, num_contrat, garanties from garanties where num_contrat = '.$test;
   // $nbsql += 1;
	if ($resselectdid = mysql_query($sqldid)) {
         $selectdid = mysql_fetch_array($resselectdid);
	}
	echo $test, $garanties
	
	?>
Dans ma table garanties j'ai come valeur :

id num_contrat garanties
1 AA343 6

et le résultat affiché par echo c'est :

AA343 Resource id #4

Pourquoi j'ai un Ressource id#4 et ca veut dire quoi ?

Merci

Posté : 31 janv. 2006, 12:35
par heddicmi
Ressource id # x correspond à un résultat de requête en fait... Tu as un tableau de résultat. Tu ne peux donc pas l'afficher directement.

Ce que je ne comprends pas c'est que $garanties devrait plutôt de dire qu'il n'a pas étais défini... Mais bon...

Dans ta requête, tu demandes qu'il te retourne 3 champs :
id, num_contrat et garanties. Si tu ne lui précise pas que tu veux "garanties", il ne le trouveras pas tout seul :wink:

En exécutant la fonction mysql_fetch_array(), tu lui dis de transformer cette ressource en un tableau lisible pour toi.
Pour récupérer la valeur de garanties, tu dois donc utiliser :
$selectdid["garanties"]

Posté : 31 janv. 2006, 12:35
par zigz4g
Salut.
Ce ne serait pas mieux ainsi ???
<?
  $test=$_GET['numero_contrat'];
  $sqldid = 'select id, num_contrat, garanties from garanties where num_contrat = '.$test;
   // $nbsql += 1;
    if ($resselectdid = mysql_query($sqldid)) {
         $selectdid = mysql_fetch_array($resselectdid);
    }
    echo 'La valeur $test = ['.$test.'] et $selectdid["garanties"] = '.$selectdid['garanties'].'<br />';
?>
Par contre faudra que tu fasses une jolie boucle pour avoir toutes les valeurs que ton select te retourne.

Pour plus d'infos :
Autre petite surprise, verifie avant que ton $_GET est bien setter sinon ta requette pourrait faire n'importe quoi.
<?php
if (isset($_GET['mavar'])) {
    $mavar = $_GET['mavar'];
}
?>

Posté : 31 janv. 2006, 12:56
par jacob
Bon j'ai recopié ton script mais il ne m'affiche aucune valeur pour garanties... Concernant la boucle je n'ai pas trop compris...

Posté : 31 janv. 2006, 13:00
par heddicmi
Tu es sur de nous avoir donner le code précis ?

Posté : 31 janv. 2006, 13:13
par jacob
Oui oui mais je met n'importe quelle valeur il ne me trouve rien !!!

J'ai essayé avec id, num_contrat, franchise mais rien ne se passe.

J'ai pourtant bien rajouté ce que tu m'avais dit :
<?
if (isset($_GET['numero_contrat']))
                {
                 $num_contrat = $_GET['numero_contrat'];
				 }
				  else
				 {
				 $num_contrat = 18;
				  }
				 ?>
Que faire .... :cry:

Posté : 31 janv. 2006, 13:16
par jacob
Il y'a une importance si num_contrat n'est pas unique. En faite j'ai plusieur num_contrat identique dans la base ????

Merci

Posté : 31 janv. 2006, 13:21
par heddicmi
s'il n'est pas unique, ta requête retourneras toutes les lignes qui contiendront ce num_contrat.

A noter que ton champ num_contrat étant textuel, tu devrais mettre :
$sqldid = "select id, num_contrat, garanties from garanties where num_contrat = '".$test."'";

au lieu de :
$sqldid = 'select id, num_contrat, garanties from garanties where num_contrat = '.$test;

Posté : 31 janv. 2006, 13:32
par jacob
Avec ta nouvelle ligne j'ai un parse error.

Parse error: parse error, unexpected '<' in /var/www/html/Intranet/garanties.php on line 343

Piiiouuuuu je commence a desesperé avec ce truc....

Posté : 31 janv. 2006, 13:36
par heddicmi
Tu veux bien réafficher ton code stp ;)

Posté : 31 janv. 2006, 13:38
par jacob
Et voilaaaaaaaaaaaaaaaaaa :D
<?

$test=$_GET['numero_contrat'];

		<? 
  $test=$_GET['numero_contrat']; 
$sqldid = "select id, num_contrat, garanties from garanties where num_contrat = '".$test."'"; 
   // $nbsql += 1; 
    if ($resselectdid = mysql_query($sqldid)) { 
         $selectdid = mysql_fetch_array($resselectdid); 
    } 
    echo 'La valeur $test = ['.$test.'] et $selectdid["garanties"] = '.$selectdid['garanties'].'<br />'; 
?> 

Posté : 31 janv. 2006, 13:40
par jacob
Ou la la je vais mal j'avais oublié un <? pardon pardon.....

Posté : 31 janv. 2006, 13:47
par jacob
Par contre il ne m'affiche que le premier enregistrement de ma base.

id num_contrat garanties
1 AA33 VOL
2 AA33 DDE


Il ne m'affiche que la premiere ligne. Peut être que la boucle entre en jeu ? lol si oui pourriez vous m'indiquer comment la faire? merciii d'avance

Posté : 31 janv. 2006, 14:23
par jacob
Personne ne peut m'aider pour faire une boucle ?????

Merci pour votre aide

Posté : 31 janv. 2006, 14:26
par iclo
Tu trouveras un exemple détaillé de parcours des résultat d'un select avec une boucle dans les tutoriaux du site.
Une petite lecture des règles du forum, serait sympa, notamment en ce qui concernent les titres de sujet, et les up.