bonjour a tous,

je me demande pourquoi suivant le script tous s'enregistre a 0.

je doit enregistré les id de la table city et users dans une table search qui a deux champs id_user et id_city.

le code:
<?php
	
	if(isset($_GET['submit'])){
		//print_r($_GET);

		$user_first_name = $_GET['user_first_name'];


		$user_name = $_GET['user_name'];


		$city_name = $_GET['city_name'];


if(empty($_GET['user_first_name']) OR empty($_GET['user_name'])ORempty($_GET['city_name'])){

			// var_dump($_GET);

			$error = '<p>veuillez remplir tous les champs</p>';


		}else{
	
if($mysqli->query('INSERT INTO users(user_first_name, user_name) VALUES (" '.$user_first_name. ' ", " ' .$user_name . ' ") ')){

$error = '<p>votre prénom ' .$user_first_name.' et votre nom ' .$user_name . ' ont ete enregistre</p>';
				
			
				
					
$result =$mysqli->query('SELECT id_user FROM users WHERE user_id =" ' .$user_name. ' " ');

						$row = $result->fetch_array();

						$row['id_user'];


$req =$mysqli->query('SELECT id_city FROM city WHERE id_city =" ' .$city_name. ' " ');

						$row = $req->fetch_array();

						$row['id_city'];
			
						

if($mysqli->query ('INSERT INTO search(id_user, id_city) VALUES (" ' .$row['id_user']. ' " , " ' .$row['id_city']. ' ") ')){
			
						$message = '<p>vos informations ont ete enregistre.</p>';
						
			}else{
				$error = '<p>vos informations n ont pas ete enregistre.</p>';
				
			}
				
			
		}

	}
		
}	

?>

merci d'avance
Bonjour,

C'est peut-être aussi les espaces qui jouent contre toi.

Essaie de changer:
VALUES (" '.$user_first_name. ' ",
par
VALUES ("'.$user_first_name. '",
et similairement pour les autres champs, et vois si ça change quelque chose.


Par ailleurs, attention aux injections SQL !
merci pour les réponses mais les espaces ce n'est pas cela.

je pense plutot que soit il me manque une condition ou cela vient de mes select comme dit jencal
boni75 a écrit :
merci pour les réponses mais les espaces ce n'est pas cela.

je pense plutot que soit il me manque une condition ou cela vient de mes select comme dit jencal


bah dans ta requete je lis (dans la clause WHERE) where user id = user name... moi je sais pas a quel heure un ID = un NAME parce que un ID c'est une suite logique alors qu'un NAME c'est du texte...
je suis d'accord jencal mais peu tu m'aiguillé, je voudrai apres le insert into pouvoir récupéré les id et les enregistrés dans la table user
j'ai bien compris ce que tu voulais

il suffit de remplacer ta clause where par user_name
$result =$mysqli->query('SELECT id_user FROM users WHERE user_name =" ' .$user_name. ' " ');

Modifié par JENCAL (14 Jan 2016 - 15:21)
t es génial jencal merci c'est vrai que j ai essayer plein de solution sauf celle la, est ce que tu peut m'expliquer ce que sait une injection sql (ciest peut etre bete comme question)lol