MODIFIER VIA LIEN HREF

afi
Eléphant du PHP | 51 Messages

10 mars 2012, 19:11

Bonjour,
j'ai crée un lien dans une première page pour modifier un enregistrement ds une base:
<table>...
<td><a href="memo_experiences_modif.php?id ='.$result['id_emploi'].'">modifier</a></td>
...<table>
Malheureusement en cliquant sur le lien, il ne se charge pas dans l'url.(GET)? LA DEUXIEME Page apparait correctement mais rien ne se passe bien sur.
Est ce quelqu'un peut me répondre! attention je suis débutant, ne soyez pas trop technique
merci

ViPHP
xTG
ViPHP | 7331 Messages

10 mars 2012, 20:28

Quel est le code de cette page qui ne s'exécute pas ?

afi
Eléphant du PHP | 51 Messages

10 mars 2012, 20:56

Ma page1:
<?php
require ("Connect.php");
$connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
mysql_select_db (BASE,$connexion);
$sql = mysql_query("SELECT * FROM emploi WHERE id='$_SESSION[id]'");
		while($result=mysql_fetch_array($sql))
	{
	echo '<tr class=etiquette>
	<td  width=0 height=20><input type="texte" name="id_emploi" size="1" value="' .$result['id_emploi'].'"></td>
	<td  width=60 height=20>' .$result['date_debut'].'</td>
	<td width=60 height=20>' .$result['date_fin'].'</td>
	<td width=220 height=20>' .$result['poste'].'</td>
	<td width=50 height=20>' .$result['type_contrat'].'</td>
	<td width=300 height=20>' .$result['entreprise'].'</td>
	<td class=supp width=0 height=20><a href=" memo_experiences.php?id='.$result['id_emploi'].'"
	onclick="return(confirm(\'Etes-vous sûr de vouloir supprimer ces informations?\'));" >Supprimer</a></td>
	<td class=supp width=0 height=20><a href="memo_experiences_modif.php?id ='.$result['id_emploi'].'">modifier</a></td>
	</tr>';
	} 
  ?>
ma page2, après avoir cliqué sur lien modifié:
<?php
 require ("Connect.php");
 $connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
 mysql_select_db (BASE,$connexion);
$id = $_GET['id_emploi'];
 $sql = mysql_query("SELECT * FROM emploi WHERE id='.$_GET[id_emploi].'");
		$result = mysql_fetch_array($sql);
echo '<table  width=750 border=0 align=center cellpadding=2 cellspacing=1 >
	<tr class=memo3_etiquette>
		<td width=60 height=20>id</td>
		<td width=60 height=20>date_debut</td>
		<td width=60 height=20>date_fin</td>
		<td width=220 height=20>poste occupé</td>
		<td width=50 height=20>contrat</td>
		<td width=300 height=20>entreprise</td>
	</tr>';
		$result = mysql_fetch_array($sql);
			if($result)
			{	
	echo '<tr>
    <td><input type=text name=id_emploi size=1 value="'.$result['id_emploi'].'"></td>
	<td><input name=date_debut type=text name=date_debut size=10 value="'.$result['date_debut'].'"></td>
	<td><input name=date_fin type=text name=date_fin size=10 value="'.$result['date_fin'].'"></td>
	<td><input name=poste type=text name=poste size=30 value="'.$result['poste'].'"></td>
	<td><input name=type_contrat type=text name=type_contrat size=10 value="'.$result['type_contrat'].'"></td>
	<td><input name=entreprise type=text name=entreprise size=40 value="'.$result['entreprise'].'"></td>
	} 
		echo '</table>';
	?>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

10 mars 2012, 21:20

Quand tu appelles le lien memo_experiences_modif.php?id=xxx, c'est la variable "id" qui est transmise à php, pas "id_emploi" ;)

Attention également aux espaces en trop dans tes url (entre attribut et =): memo_experiences_modif.php?id_='.$result['id_emploi'].'
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

afi
Eléphant du PHP | 51 Messages

10 mars 2012, 22:35

super Ryle c'est bien ça, le problème, je laisse trop d'espaces. ça c'est réglé!
Mais il y a un autre pb: sur ma page 2 l'url est bien transmise, mais les données de l'id sélectionné ne s'affichent pas. Je n'ai pas de message d'erreur!
Peut être un pb au niveau de ma requête?
====== $sql = mysql_query("SELECT * FROM emploi WHERE id='.$_GET[id_emploi].'");

ViPHP
xTG
ViPHP | 7331 Messages

10 mars 2012, 23:26

// incorrect
$sql = mysql_query("SELECT * FROM emploi WHERE id='.$_GET['id'].'");
// correct
$sql = mysql_query("SELECT * FROM emploi WHERE id=".$_GET['id']);
Problème de côte de porc. :P

afi
Eléphant du PHP | 51 Messages

11 mars 2012, 00:43

désolé cher ami ça ne fonctionne toujours pas, je n'ai pas d'affichage des données.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

11 mars 2012, 01:12

Dans ton second code tu as deux fois l'instruction $result = mysql_fetch_array($sql);

La première va récupérer l'enregistrement retourné et le second n'aura donc plus de résultat ... et comme c'est après le second que tu affiches les valeurs, ça doit fonctionner beaucoup moins bien :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

afi
Eléphant du PHP | 51 Messages

11 mars 2012, 10:05

oui, effectivement, j'ai vu l'erreur ça été corrigé. Mais toujours rien, ça ne fonctionne pas!

ViPHP
xTG
ViPHP | 7331 Messages

11 mars 2012, 10:42

Ton serveur est-il configuré pour afficher les erreurs ?
Car il manque une fermeture de quote sur l'avant dernier echo.

Pour debug, affiches la requête SQL puis exécutes la dans PHPMyAdmin pour voir si elle retourne une ligne.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

11 mars 2012, 11:38

Et montre nous ton code actualisé au cas il y aurait autre chose :)
(tu as bien corrigé la correspondance entre ton lien qui envoi la variable "id" et la valeur que tu récupère en get qui est "id_emploi" ?)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

afi
Eléphant du PHP | 51 Messages

11 mars 2012, 13:21

EFFECTIVEMENT ryle après verif c'est un pb de correspondance entre le lien qui envoi la variable "id" et la valeur que récupère get.
C'est réglé tout fonctionne! du moins pour l'instant!!!
merci à tous