Bonjour.
Je n'y arrive pas.
Visiblement, je n'ai sélectionné aucune base et j'ai un soucis avec field que je ne comprends pas.
Pourtant ma base existe, voir post précédent.
Je ne sais plus où chercher.
Bonjour.
Je n'y arrive pas.
Visiblement, je n'ai sélectionné aucune base et j'ai un soucis avec field que je ne comprends pas.
Pourtant ma base existe, voir post précédent.
Je ne sais plus où chercher.
Tu as fait ce que je t'ai dit dans le message précédent ?
N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP
Oui.
C'est vrai, je ne sais plus où j'en suis.
Le fichier ci-dessous :
renvoie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 <?php $host = "localhost"; /* L'adresse du serveur */ $login = "root"; /* Votre nom d'utilisateur */ $password = ""; /* Votre mot de passe */ $base = "toulesport"; /* Le nom de la base */ $db = mysql_connect($host, $login, $password); echo '<table>'; $sql = "SHOW COLUMNS FROM " . mysql_real_escape_string($_POST['table']); $req = mysql_query($sql); echo $req; while ($row = mysql_fetch_assoc($req)) { echo '<tr>'; foreach ($row as $values) { echo '<th>' . $values['field'] . '</th>'; } echo '</tr>'; } $sql = "SELECT * FROM " . mysql_real_escape_string($_POST['table']); $req = mysql_query($sql); while ($row = mysql_fetch_assoc($req)) { echo '<tr>'; foreach ($row as $value) { echo '<td>' . htmlspecialchars($value) . '</td>'; } echo '</tr>'; } echo '</table>'; mysql_close(); /*affiche les erreurs*/ $req = mysql_query($sql); mysql_select_db($base,$db); echo mysql_error(); ?>
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in E:\EasyPHP-DevServer-13.1VC9\data\localweb\includes\voir_table_V20.php on line 14
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in E:\EasyPHP-DevServer-13.1VC9\data\localweb\includes\voir_table_V20.php on line 24
No database selected
Supprimer tes 3 dernières lignes.
Le mysql_select_db() que je mentionnais, c'est celui de ton fichier de connexion.
N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP
Nous revoilà avec ce booléen qui nous manque :
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in E:\EasyPHP-DevServer-13.1VC9\data\localweb\includes\voir_table_V20.php on line 14
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in E:\EasyPHP-DevServer-13.1VC9\data\localweb\includes\voir_table_V20.php on line 24
Bonjour.
je sais pas corriger l'erreur renvoyée et je ne comprends pourquoi une méthode qui me semblait la même que celle que j'ai employé pour créer la table ne permet plus de me connecter.
Tu as bien remis le mysql_select_db() dans ton code après le mysql_connect() ?
N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP
Non. Merci de ton aide. Une fois que ça fonctionnera, je poserai quelques questions sur ce que je n'ai pas compris. Cet exercice me permet de beaucoup avancer.
Avec :J'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 <?php $host = "localhost"; /* L'adresse du serveur */ $login = "root"; /* Votre nom d'utilisateur */ $password = ""; /* Votre mot de passe */ $base = "toulesport"; /* Le nom de la base */ $db = mysql_connect($host, $login, $password); mysql_select_db($base,$db) ; echo '<table>'; $sql = "SHOW COLUMNS FROM " . mysql_real_escape_string($_POST['table']); $req = mysql_query($sql); echo $req; while ($row = mysql_fetch_assoc($req)) { echo '<tr>'; foreach ($row as $values) { echo '<th>' . $values['field'] . '</th>'; } echo '</tr>'; } $sql = "SELECT * FROM " . mysql_real_escape_string($_POST['table']); $req = mysql_query($sql); while ($row = mysql_fetch_assoc($req)) { echo '<tr>'; foreach ($row as $value) { echo '<td>' . htmlspecialchars($value) . '</td>'; } echo '</tr>'; } echo '</table>'; mysql_close(); ?>
Resource id #4
Warning: Warning: Illegal string offset 'field' in E:\EasyPHP-DevServer-13.1VC9\data\localweb\includes\voir_table_V20.php on line 17
Notice: Uninitialized string offset: 0 in E:\EasyPHP-DevServer-13.1VC9\data\localweb\includes\voir_table_V20.php on line 17
i i N P a
D d N
i v Y
d d Y
d i Y
s v Y
d t Y
Une seule boucle suffit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 while ($row = mysql_fetch_assoc($req)) { echo '<tr>'; echo '<th>' . $row['field'] . '</th>'; echo '</tr>'; }
PDO, une soupe et au lit !
Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020
Merci, je comprends.
Mais pour mon field, j'ai toujours :et comme je ne comprends pas cette ligne, je ne troue pas.Notice: Undefined index: field in E:\EasyPHP-DevServer-13.1VC9\data\localweb\includes\voir_table_V20.php on line 16
Essaie Field, dans phpmyadmin, il met une majuscule... mais je ne suis pas sûre que ce soit case sensitive...
Sinon, fais ça, pour voir ce que ton tableau a dans le ventre, et pour mieux comprendre ce que fait cette boucle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 while ($row = mysql_fetch_assoc($req)) { echo '<pre>'; print_r($row) ; echo '</pre>'; }
PDO, une soupe et au lit !
Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020
Merci super.
C'était bien un probleme de casse.
Je vais poser des questions sur le code.
Que représente field ?
Comment passer des commandes mysql_ au commandes mysqli_, la correspondance est elle linéaire, prennent elle le même nombre d'aguments ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <?php $host = "localhost"; /* L'adresse du serveur */ $login = "root"; /* Votre nom d'utilisateur */ $password = ""; /* Votre mot de passe */ $base = "toulesport"; /* Le nom de la base */ $db = mysql_connect($host, $login, $password); mysql_select_db($base,$db) ; echo '<table>'; $sql = "SHOW COLUMNS FROM " . mysql_real_escape_string($_POST['table']); $req = mysql_query($sql); while ($row = mysql_fetch_assoc($req)) { echo '<tr>'; echo '<th>' . $row['Field'] . '</th>'; echo '</tr>'; } echo '</table>'; mysql_close(); ?>
"Que représente 'Field' ?"
Si tu lances la commande 'show columns from matable' dans un phpmyadmin, tu obtiens ce genre de réponse (je te conseille de tester chez toi).
Field Type Null Key Default Extra
id int(11) NO PRI NULL auto_increment
nom varchar(50) NO UNI NULL
type varchar(20) NO MUL NULL
dsn varchar(400) NO MUL NULL
login varchar(200) NO MUL NULL
mdp varchar(20) NO NULL
active tinyint(1) NO MUL 1
C'est une requête non pas à l'intérieur de matable, mais en amont, une meta requête, qui sollicite en réalité l'information schema (ta meta base).
Bref, quand tu vois ce tableau, tu vois mieux qu'il y a un champ Field, ainsi que Type, Null, Key etc...
Quelle que soit la table, il y a ces champs, qui décrivent la table.
Le champ "champ" field en anglais, liste les champs de ta table, etc.
Pour mysqli, prends l'exemple de cette page, style procédural. Tu n'as que peu de choses à changer...
http://php.net/manual/fr/mysqli.query.php
Le manuel PHP, si on l'utilise par l'exemple, est assez abordable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 <?php $link = mysqli_connect("localhost", "my_user", "my_password", "world"); /* Vérification de la connexion */ if (mysqli_connect_errno()) { printf("Échec de la connexion : %s\n", mysqli_connect_error()); exit(); } /* "Create table" ne retournera aucun jeu de résultats */ if (mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) { printf("Table myCity créée avec succès.\n"); } /* Requête "Select" retourne un jeu de résultats */ if ($result = mysqli_query($link, "SELECT Name FROM City LIMIT 10")) { printf("Select a retourné %d lignes.\n", mysqli_num_rows($result)); /* Libération du jeu de résultats */ mysqli_free_result($result); } /* Si nous avons à récupérer beaucoup de données, nous utilisons MYSQLI_USE_RESULT */ if ($result = mysqli_query($link, "SELECT * FROM City", MYSQLI_USE_RESULT)) { /* Notez que nous ne pouvons exécuter aucune fonction qui agit sur le serveur tant que le jeu de résultats n'est pas clos. Tous les appels retourneront un 'out of sync' */ if (!mysqli_query($link, "SET @a:='this will not work'")) { printf("Erreur : %s\n", mysqli_error($link)); } mysqli_free_result($result); } mysqli_close($link); ?>
PDO, une soupe et au lit !
Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020
Bonjour
je tiens à m'orienter envers des professionnels en PHP pour m'aider à résoudre un problème qui me freine dans l'avancement de mon projet bref.
je tiens à vous envoyer mon script afin de bien vous expliquez ma requête .
Alors mon erreur affiche en Numéro 23 qui s'intitule ainsi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 <?php include("includes/header.php"); include("includes/config.php"); //connexion à la base de donnée BDD $mysqli = mysqli_connect($serveur, $user, $pass, $base, $port); $query = "SELECT * FROM fiche ORDER BY nom"; $result = mysqli_query($mysqli, $query); $num = mysqli_num_rows ($result); $mysqli->close(); ?> <center> <table border="0"> <tr> <td class="titre">LISTE DES FICHES</td> </tr> </table> <?php if ($num > 0 ) { $i=0; while ($i < $num) { if ($num > 0 ) { $i=0; while ($i < $num) { $nom = mysqli_result($result,$i,"nom"); $prenom = mysqli_result($result,$i,"prenom"); $total = mysqli_result($result,$i,"total"); $id = mysqli_result($result,$i,"id"); $id = mysqli_result($result,$i,"id") ?> <table border="0"class="table" class="texte"> <tr> <td><center><p class="texte">Mr, Mme <?php echo "$nom"; ?></center></td> </tr> </table> <?php echo "<p class=\"texte\"><b>N° :</b> $id<br>"; echo "<b>Nom :</b> $nom<br>"; echo "<b>Prenom :</b> $prenom<br>"; echo "<b>Tarif TTC :</b> $total<br>"; echo "<br><br>"; echo "</b></p>"; echo "<table border=\"0\" width=\"100%\">"; echo " <tr>"; echo " <td><p align=\"center\">"; echo " <a href=\"modif_fiche.php?id=$id\"><img border=\"0\" src=\"icones/edit.png\" width=\"48\" height=\"48\"><br>"; echo " Modifier Cette Fiche</a></td>"; echo " <td>"; echo " <td><p align=\"center\">"; echo " <a href=\"fiche.php?id=$id\"><img border=\"0\" src=\"icones/voir.png\" width=\"48\" height=\"48\"><br>"; echo " Voir La fiche</a></td>"; echo " <td>"; echo " <p align=\"center\">"; echo " <a href=\"suppr_fiche.php?id=$id\"><img border=\"0\" src=\"icones/suppr.png\" width=\"48\" height=\"48\"><br>"; echo " Supprimer Cette Fiche</a></td>"; echo " </tr>"; echo "</table>"; ++$i; } } else { echo "La base de donnée est vide"; } include("includes/footer.php"); ?>
Fatal error: Call to undefined function mysqli_result() in C:\wamp\www\maintenance\fiche_list.php on line 23
Bonjour.
@Dendrite
C'est un peu magique, pour moi, que mysql_fetch_assoc($req) ne renvoie que les métadonnées de la première colonne puis de la deuxième si on refait la même requête. Il y a une boucle qui se fait quelque part.
Comment faire pour avoir en une requête sans boucle, un tableau avec les métadonnées de toutes les colonnes de la table ?
Comment faire pour avoir uniquement les métadonnées de la troisième colonne ?
Merci de m'aider à comprendre.
Quoi ?
Tu veux bien tester cette requête dans ton phpmyadmin ?
Il n'est pas question de boucle ici.
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part SHOW COLUMS FROM MA_TABLE;
http://dev.mysql.com/doc/refman/5.0/...formation.html
Comment faire pour avoir en une requête sans boucle, un tableau avec les métadonnées de toutes les colonnes de la table ?
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part SHOW TABLES;Là pour le coup, il faut qu'en php, ta première requête boucle sur la seconde.
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part SHOW COLUMS FROM CHAQUE_TABLE;
Pas compris.Comment faire pour avoir uniquement les métadonnées de la troisième colonne ?
Lis bien la doc du lien.... tout est là.
PDO, une soupe et au lit !
Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager