bonjour a tous,

je m'explique, quand je fais une recherche de ville dans ma page recherche et qu'un resultat soit bon, je doit retourné le resultat sous forme de lien et quand je clic sur le lien cela m'ouvre une autre page ou il y a la description détaillé de la ville, mais rien a faire....

script recherche:


if(!empty($_GET['city_name'])){
					
$search = $mysqli->query('SELECT id_city, city_name, city_text FROM city WHERE city_name ="'.$_GET['city_name'].'"');
						
while($row =$search->fetch_array()){
							
	echo '<li><a href="city.php?='.$row['id_city'].'">'.$row['city_name'].'<br /></a></li>';
								
								
							}
				
						}
			

script city:

<?php
		
		$id = $_GET['id'];
	
		
		$result = $mysqli->query('SELECT id_city, city_name, city_text FROM city'.$id);
		
		$row = $result->fetch_array()
		
		$name=$row['city_name'];
		
		$text=$row['city_text'];
		
		
	?>


code erreur:
Parse error: syntax error, unexpected '$name'
Bonjour,

Ne manquerait-il pas "id" dans l'url ?
echo '<li><a href="city.php?id='.$row['id_city'].'">'.$row['city_name'].'<br /></a></li>';


EDIT: et surtout, il manque également un point-virgule dans ton script city ! (en JS ça peut aller, mais en PHP, il aime, mais alors pas du tout Smiley ravi )
Modifié par SolidSnake (21 Jan 2016 - 11:54)
j'ai remit le ; mais message :
Call to a member function fetch_array() on a non-object
Notice: Undefined index: id
Deux choses:
- récupère-tu bien l'id ? (faire un petit echo pour vérifier)
- Ensuite ne manquerait-il pas une clause WHERE dans ta requête ("... WHERE id_city=$id") ?
la jsuis pom pom, quand je clic sur le lien message d'erreur,
Call to a member function fetch_array() on a non-object in C:\wamp\www\php_inter_1\city.php
Undefined index: id in C:\wamp\www\php_inter_1\city.php
<?php

$id_city = $_GET['id'];


$result = $mysqli->query('SELECT id_city, city_name, city_text FROM city WHERE id_city ='.$id_city);

$row = $result->fetch_array();

$name=$row['city_name'];

$text=$row['city_text'];


?>
et si tu rajoute un var_dump($result) ici

$id_city = $_GET['id'];


$result = $mysqli->query('SELECT id_city, city_name, city_text FROM city WHERE id_city ='.$id_city);
var_dump($result);
exit;


$row = $result->fetch_array();

$name=$row['city_name'];

$text=$row['city_text'];

car si ton $result est = false, alors oui tu ne pas le fetch.
Modifié par JENCAL (21 Jan 2016 - 13:45)
Modérateur
Bonjour,

On a toujours les mêmes questions : il y a quoi dans ton $_GET['id'] ?

Essaie de comprendre un peu comment on teste tout ça. Avant la ligne $id_city = $_GET['id']; insère le code suivant :


if (isset($_GET['id'])) print "La valeur de id_city est ".$_GET['id'];
else print "La valeur de id_city est indéfinie";


Ainsi tu sauras si $id_city reçoit la bonne valeur ou pas. Si elle ne reçoit pas la bonne valeur, c'est que le problème est dans ton autre script.

Amicalement,
la valeur est indéfini:

deuxieme script:
	if(!empty($_GET['city_name'])){
					
$result = $mysqli->query('SELECT id_city, city_name, city_text FROM city WHERE city_name ="'.$_GET['city_name'].'"');
						
		while($row =$result->fetch_array()){
							
				$city[$row['id_city']] = $row['city_name'];
				$city[$row['id_city']] = $row['city_name'];
			}
							
			/*print_r($city);*/
							
		foreach($city as $id => $value){
								
		echo '<li><a href="city.php?='.$id.'">'.$value.'<br /></a></li>';
								
							}
							
		/*var_dump($city);*/
								
						
		}

je ne voit pas ou cela cloche Smiley sweatdrop
Modérateur
Bonjour,

Ralala !

On t'a déjà dit qu'il manquait "id" après le ? dans <li><a href="city.php?='.$id.'">

Il faut mettre :
echo '<li><a href="city.php?id='.$id.'">'.$value.'<br /></a></li>';


Comment tu fais pour ne pas comprendre ça ???

Amicalement,
Modifié par parsimonhi (21 Jan 2016 - 19:18)
boni75 a écrit :
oui jencal il me retourne null alors dans ce cas precis que faire


et si tu fais
var_dump( $_GET);
exit;

$id_city = $_GET['id'];


$result = $mysqli->query('SELECT id_city, city_name, city_text FROM city WHERE id_city ='.$id_city);


$row = $result->fetch_array();

$name=$row['city_name'];

$text=$row['city_text'];