Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/11/2010, 14h39   #1
Membre expérimenté
 
Avatar de ArKam
 
Inscription : mars 2007
Messages : 505
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : mars 2007
Messages : 505
Points : 511
Points : 511
Par défaut [PHP 5.3] - Retour de valeurs incomplet.

Bien le bonjour à vous.

Je rencontre aujourd'hui un probleme assez bizarre.

Je cherche au travers de PHP à récupérer les infos d'une DB MYSQL tel que suis:

Code :
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
 
<?php
$host="localhost";
$username="toto";
$password="password";
$database="MADATABASE";
 
$mysqlConnect=@mysql_connect($host,$username,$password);
mysql_select_db($database,$mysqlConnect);
$sqlQuery='SELECT * FROM latableenquestion';
$mysqlQuery=@mysql_query($sqlQuery);
 
if (!$mysqlConnect) {
	echo "Une erreur est survenue lors de la tentative de connexion à la base de données."."</br>"."L'erreur suivante est survenue: ".mysql_error();
}
		else {
				echo "Connexion réalisée avec succés!"."</br>";
					if (!$mysqlQuery) {
							echo "Une erreur est survenue lors de l'accés aux données de la base."."</br>"."L'erreur suivante est survenue: ".mysql_error();
					}
							else {
									echo "Requete exécutée avec succés!"."</br>";
									$mysqlQueryCount=@mysql_affected_rows();
									echo "Votre requete contient: "."$mysqlQueryCount"." enregistrements"."</br>";
									$table = mysql_fetch_array($mysqlQuery,MYSQL_ASSOC);
 
		foreach ( $table as $cle => $valeur) {
				echo "$cle".":"."$valeur"."</br>";
										}
			}
		}
?>
donc, j'ai bien une sortie, elle est correct, le hic c'est que la sortie que j'obtiens ne correspond qu'à un seul enregistrement de la base.

hors moi je veux les 54700 pas juste le premier.
Comment puis-je faire?
ArKam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 14h45   #2
Membre actif
 
Tobbi Filteau
Inscription : mai 2010
Messages : 176
Détails du profil
Informations personnelles :
Nom : Tobbi Filteau

Informations forums :
Inscription : mai 2010
Messages : 176
Points : 177
Points : 177
Normalement, pour passer tous les enregistrements retournés par une requête SELECT, il faut faire une boucle, car mysql_fetch_array() ne retourne qu'un seul enregistrement à la fois:

Code :
1
2
3
4
5
 
while($table = mysql_fetch_array($mysqlQuery,MYSQL_ASSOC))
{
//ton code
}
osuwariboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 16h29   #3
Membre expérimenté
 
Avatar de ArKam
 
Inscription : mars 2007
Messages : 505
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : mars 2007
Messages : 505
Points : 511
Points : 511
Ouep, pendant que tu me répondais, je travaillé dessus et j'ai trouvé un truc similaire.

Code :
1
2
3
4
5
6
 
										while ($row = mysql_fetch_object($mysqlQuery)) {
  												echo $row->type."</br>";
												echo $row->status."   ";
												echo $row->sizes."</br>";
											}
Bon aprés, le hic c'est que je suis obligé de lui préciser quel champs je veux afficher, alors que je cherche à faire l'équivalent de *

mais bon ça fonctionne à peux prés c'est bon maintenant, merci
ArKam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 20h48   #4
Membre actif
 
Tobbi Filteau
Inscription : mai 2010
Messages : 176
Détails du profil
Informations personnelles :
Nom : Tobbi Filteau

Informations forums :
Inscription : mai 2010
Messages : 176
Points : 177
Points : 177
Tu ne pourrais pas faire:

Code :
1
2
3
4
5
 
foreach($row as $champ)
{
//ton code
}
Dans ce cas, tu pourrais parcourir tout le tableau $row sans nécessairement avoir besoin de connaître le nombre de champs.
osuwariboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2010, 00h19   #5
Membre expérimenté
 
Avatar de ArKam
 
Inscription : mars 2007
Messages : 505
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : mars 2007
Messages : 505
Points : 511
Points : 511
Je veux bien essayer, mais $champs correspond à quoi?
Par ce que si je doit lui dire comme dans mon autre code:

$champs=toto

c'est plus facile pour moi de faire avec un while et des pointeurs.
ArKam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2010, 00h28   #6
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
dans une syntaxe
Code :
foreach( $array as $value )
ou
Code :
foreach ( $array as $key => $value )
$value est une variable de type divers (tableau ou autre chose) dont la valeur est prise dans le tableau à l'indice désigné par le pointeur interne (invisible) du tableau, un peu comme next() previous() et current().

ce que je n'ai jamais déterminé c'est si c'est une référence vers le tableau ou si c'est une copie. bon... pas grave.
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h55.


 
 
 
 
Partenaires

Hébergement Web