2010-10-14 4 views
0

moi avons écrit ce code:Pourquoi ne bouclera-t-il pas? (PHP et MySQL)

<?php 
mysql_connect("localhost", "root", "root") or 
    die("Could not connect: " . mysql_error()); 
mysql_select_db("internal"); 

$result = mysql_query("SELECT Title, Message FROM msg"); 
?> 

<?php 

    while ($row = mysql_fetch_array($result, MYSQL_NUM)){ 
?> 

    <div> 
     <h3><a href="#"><?php printf("%s", $row[0]); ?></a></h3> 
     <div><?php printf("%s", $row[1]); ?></div> 
    </div> 

<?php 
mysql_free_result($result); 
    } 
?> 

Le résultat je me fais est la première ligne de la table MySQL (Avec la mise en forme correcte) j'inclure une image juste au cas où:

screeshot result

(C'est en fait la première ligne de mon MySQL DB et la seule chose que je vois)

le code a été mise en boucle jusqu'à ce que je devais ajouter les balises html, ce que je veux dire est que si je viens faire:

<?php printf("%s", $row[0]); ?> 
& 
<?php printf("%s", $row[1]); ?> 

Il a bouclé et apporté tous les résultats.

Serait-ce une erreur de syntaxe?

+0

Merci à tous! Le problème est définitivement résolu! – Trufa

Répondre

5

mysql_free_result($result); dans votre boucle while. Cela le rend si après la première itération, il efface les résultats, ce qui rend impossible d'en saisir plus.

Changez votre fin pour

<?php 
    } 
mysql_free_result($result); 
?> 

et il va le fixer

+0

Ouais! exactement, merci! – Trufa

2

L'avant-dernière ligne libère le résultat avant d'en avoir terminé. Déplacez-le en dehors de la boucle.

1

déplace l'appel vers mysql_free_result pour être en dehors de la boucle while.

0

mysql_free_result n'efface-t-il pas le jeu de résultats?

Vous n'avez plus rien à boucler!

1

Vous libérez le résultat après la première boucle. Ici

mysql_free_result($result); 
} 

Cela devrait être

} 
mysql_free_result($result); 
+0

A travaillé comme un charme merci !! – Trufa

Questions connexes