[RESOLU] erreur mysql

Eléphanteau du PHP | 14 Messages

06 févr. 2014, 11:38

bonjour,
ma table comporte deux champs , id et nom
je voudrais afficher le nom connaissant l'id mais j'ai une erreur mysql_fetch_assoc()
<?php
$id= $_POST['id'];
$db = mysql_connect('localhost', 'root', '');

// on sélectionne la base
mysql_select_db('mabase',$db);

// on crée la requête SQL
$sql = 'SELECT id,nom  FROM matable where id=$id';

// on envoie la requête
$req = mysql_query($sql);
$data = mysql_fetch_assoc($req);
// on affiche les informations de l'enregistrement selectionne
echo ''.$data['id'].' '.$data['nom'].'';
   

// on ferme la connexion à mysql
mysql_close()
merci
Modifié en dernier par moogli le 06 févr. 2014, 12:29, modifié 1 fois.
Raison : bbcode php

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

06 févr. 2014, 12:33

salut,

ce qu'il te manque c'est la concaténation

tu devrais aussi revoir l'utilisation des chaines de caractères(source de tes ennuis).

@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 2278 Messages

06 févr. 2014, 12:38

1) Remplacer mysql par mysqli ou pdo : raison mysql est déclarée obsolete par php.
2) echo ''.$data['id'].' '.$data['nom'].'';
je trouve plus clair, même si c'est un peu bavard:
$id = $data['id'];
$nom = $data['nom'];
Après quoi tu fais ce que tu veux avec ces variables qui ne vont vraisemblablement pas servir seulmeent à cet affichage.
print "$id $nom"; //par exemple
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 14 Messages

06 févr. 2014, 12:56

Pour PDO, je sais, je verrais , je débute en php

pour mon problème jai le message suivant
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\afftriebase.php on line 13

Eléphant du PHP | 56 Messages

06 févr. 2014, 13:07

Si tu débutes en PHP, mets toi tout de suite en PDO. C'est ce que j'ai fait et perso, je trouve ça plus simple d'utilisation. et, ça t'évite d'apprendre des trucs obsolètes...

pour le fetch assoc, peut-être que ta requête ne marche pas. tu récupères bien le $id ?

Eléphanteau du PHP | 14 Messages

06 févr. 2014, 13:10

non

Mammouth du PHP | 571 Messages

06 févr. 2014, 13:27

ta requête est fausse et pourtant plus haut on t'a parlé de la concaténation.

<?php
$id= $_POST['id'];
$db = mysql_connect('localhost', 'root', '');

// on sélectionne la base
mysql_select_db('mabase',$db);

// on crée la requête SQL
$sql = "SELECT id,nom  FROM matable where id='$id' ";

// on envoie la requête
$req = mysql_query($sql);
$data = mysql_fetch_assoc($req);
// on affiche les informations de l'enregistrement selectionne
echo ''.$data['id'].' '.$data['nom'].'';
   

// on ferme la connexion à mysql
mysql_close()