Comment faire pour retourner plusieurs lignes d'un tableau en php utilisant mysql
J'ai décidé de créer un site web pour fantasy football pour ma famille, mais je suis coincé avec le retour de plusieurs lignes à partir de la base de données.
Ce que je veux: faire un seul appel sql et d'obtenir toute la liste des joueurs afin que je puisse remplir un objet ou une liste d'objets. (si l'ensemble de la table pourrait être retournés, ce serait super...). Mon but est d'avoir la liste des joueurs disponibles pour être rédigé simplement affiché à l'utilisateur.
Actuellement je peut un peu voir quelques résultats obtenus lors de l'essai par la méthode suivante (crédit: à partir de php, docs...). Cependant je ne peux pas aider à se sentir perdu à ce qui se passe.. je ne peux pas faire cela un sens dans mon cerveau.
//My query
$sql = mysql_query("SELECT * FROM players");
//$data = mysql_fetch_array($sql);
while ($row = mysql_fetch_array($sql, MYSQL_NUM)) {
printf("Name: %s <br/>", $row[1]);
}
Cela semble imprimer les noms de chaque joueur. Cependant comment ne
'mysql_fetch_array()' parcourir chaque ligne comme la boucle while itère? De plus, puisqu'il y a plusieurs colonnes comment puis-je accéder à chaque colonne... est ce que cela a à être codé en dur tels que:
while ($row = mysql_fetch_array($sql, MYSQL_NUM)) {
printf("Name: %s <br/>", $row[1]);
printf("Team: %s <br/>", $row[2]);
..
.
printf("Team: %s <br/>", $row[5]);
}
Finalement je vais remplacer les instructions d'impression, avec le code qui va stocker la date dans une liste d'objets ou de quelque chose:
class Roster(){
$playerName;
$team;
$etc.
}
La boucle while de la méthode ci-dessus se sent difficile et maladroit. Est-il un meilleur moyen pour accéder à toutes les lignes retournées? Comment quelqu'un d'autre cette tentative? Mon expérience limitée est en C# et sql server, qui peut faire certaines des choses incroyables avec un certain effort de la configuration... retourner immédiatement une liste ^
Si je ne suis pas clair, je vais vérifier bientôt de retour et de faire d'autres commentaires. Je suis encore une CS de l'étudiant. Je vous remercie pour votre patience.
mysql_*
des fonctions de déconseillée en PHP 5.5. Il n'est pas recommandé pour l'écriture de code en tant que ce sera supprimée dans le futur. Au lieu de cela, MySQLi ou PDO et être un meilleur Développeur PHP.OriginalL'auteur donsiuch | 2013-01-02
Vous devez vous connecter pour publier un commentaire.
Essayer cela,
column_name_player est le nom de la colonne du tableau qui contient le nom du joueur.
mysql_fetch_array
est une bien meilleure option que vous ne sont plus tenus de vous garder de la base de données des colonnes de la table dans un certain ordremysql_fetch_array va chercher à la fois la mysql_fetch_row et mysql_fetch_assoc résultats. Vous souhaitez peut-être s'en tenir à l'aide de mysql_fetch_assoc si vous voulez indexer vos résultats par nom de colonne.
OriginalL'auteur Techy
Bien que Jason a Suggéré, s'il vous plaît ne pas utiliser mysql_* les fonctions. Mais juste pour clarifier votre concept
C'est compliqué pour un débutant inutilement. Au lieu d'utiliser la ligne index comme 1 ou 2 ou 3, vous pouvez (et devriez), il suffit d'utiliser vos noms de champ.
Afin de le mettre à jour comme
Bien sûr nom et otherdata sont juste des suppositions. Vous pourrez les remplacer par votre les noms des champs de la table
OriginalL'auteur Hanky Panky
Si vous voulez récupérer chaque colonne, dans chaque ligne, sans avoir à connaître chaque nom de colonne, vous pouvez compter le nombre de colonnes dans le tableau.
Voici un exemple d'une
mysqli
instruction select qui est le successeur de la qui sera bientôt obsolètemysql_* statements
:Table
Les Résultats:
"
à la fin de$queryPlayers = "SELECT * FROM players;
OriginalL'auteur Mr. Polywhirl