Comment faire un tableau php de un mysql_fetch_array boucle while
Pour le moment j'ai un grand nombre de fichiers php, chacun avec un tableau de déclaration dans le format:
$array1 = array ( array ( 'Husband' => 'bob',
'Wife' => 'ann' ),
array ( 'Husband' => 'fred',
'Wife' => 'donna' ),
array ( 'Husband' => 'john',
'Wife' => 'mary' ) );
Bien sûr, cela renvoie à partir de print_r ($array1)
la sortie (A):
Array ( [0] => Array (
[Husband] => bob [Wife] => ann )
[1] => Array (
[Husband] => fred [Wife] => donna )
[2] => Array ( [Husband] => john [Wife] => mary ) )
Dans un fichier de classe, j'ai accès $array1 données, à l'aide des énoncés comme:
for ($col = 0; $col < sizeof($array1); $col++)
{
echo $array[$col]['Wife']."<br />";
}
Sur la théorie qu'un grand nombre de quelque chose est une base de données, je suis désireux de migrer les données dans les multiples tableau php des fichiers matrice dans une base de données MySQL, et d'accéder à la base de données à partir de mon fichier de classe. J'ai donc mis en place dans MySQL:
CREATE TABLE IF NOT EXISTS `arrays` (
`id` int(5) NOT NULL auto_increment,
`husband` varchar(255) collate utf8_unicode_ci NOT NULL,
`wife` varchar(255) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
INSERT INTO `arrays` (`id`, `husband`, `wife`) VALUES
(1, 'bob', 'ann'),
(2, 'fred', 'donna'),
(3, 'john', 'mary');
Puis-je accéder à cette base de données MySQL depuis PHP:
$sql = "SELECT * FROM `database`.`arrays`";
$link = mysql_connect ('localhost', 'username', 'password' ) or die(mysql_error());
mysql_select_db ('database', $link) or die(mysql_error());
$result = mysql_query ($sql) or die(mysql_error());
while($row = mysql_fetch_array($result))
{
$array2 = array ( 'Husband' => $row['husband'],
'Wife' => $row['wife'] );
print_r ($array2);
}
Ce produira en sortie (B) comme:
Array ( [Husband] => bob [Wife] => ann )
Array ( [Husband] => fred [Wife] => donna )
Array ( [Husband] => john [Wife] => mary )
Ma question est comment puis-je faire un tableau php de la mysql_fetch_array en boucle, de sorte que la production B ressemble sortie A. je veux être en mesure de continuer à accéder aux données dans mon fichier de classe de la manière $array[$col]['Wife']
, mais à partir de la base de données MySQL.
OriginalL'auteur user1421347 | 2012-05-28
Vous devez vous connecter pour publier un commentaire.
Tout ce que vous devez faire ici est de pousser le tableau retourné par
mysql_fetch_array()
sur un grand tableau à l'aide de[]
:Maintenant, quelques commentaires:
mysql_*
extension, utilisez AOP ou MySQLi à la place.mysqli_fetch_assoc()
etmysqli_fetch_row()
au lieu demysqli_fetch_array()
moins que vous ne souhaitiez indexé numériquement clés ainsi que associatif.mysqli_fetch_assoc()
sur le tableau.Par exemple:
or die(mysql_error());
constructions. Vous devriez jamais montrent le résultat de l'mysql_error()
(ou AOP/MySQLi équivalent) dans un environnement de production, et si vous devez le faire pour le débogage assurez-vous de supprimer à partir de votre code immédiatement après.sizeof($array1)
directement comme une condition de boucle. Il est très inefficace, le seul moment où vous devriez faire est si la taille de votre tableau peut changer au cours de la boucle. Vous devriez appelersizeof()
une fois avant la boucle, stocker le résultat dans une variable, et de comparer$col
contre cette variable.Par exemple:
OriginalL'auteur DaveRandom
essayez de changer votre code de cette façon
Je crois que c'est le résultat que vous recherchez
OriginalL'auteur Milan Halada
Peut-être essayer quelque chose comme:
OriginalL'auteur Jared