2011-01-13 3 views
-2

Pourquoi cela ne fonctionne-t-il pas?Aide avec PHP Fonction

<?php 
$select = "select * from messages where user='$u'"; 

$query = mysqli_query($connect,$select) or die(mysqli_error($connect)); 

$row = mysqli_num_rows($query); 

$result = mysqli_fetch_assoc($query); 

$title = mysqli_real_escape_string($connect,trim($result['title'])); 

$message = mysqli_real_escape_string($connect,trim($result['message'])); 

while(($result = mysqli_fetch_assoc($query))){ 
echo $title; 
echo '<br/>'; 
echo '<br/>'; 
echo $message; 
} 

?> 

où que cela fonctionne -

<?php 

echo $title; 

?> 

DÉSOLÉ POUR DIRE, MAIS AUCUN DES TRAVAUX RÉPONSES. D'AUTRES IDÉES?

+3

Il semble que le contexte puisse être un problème ici. –

+1

source complète va certainement aider ... – bharath

+0

Comment l'un d'eux peut-il travailler quand '$ title' et' $ message' ne sont pas déclarés? – BoltClock

Répondre

1

Si votre requête mysqli renvoie zéro lignes alors vous ne verrez jamais rien imprimé dans votre boucle while. Si $ title et $ message ne sont pas définis (parce que vous voudriez les référencer par $ result ['title'] & $ result ['message'] si ce sont les noms des champs dans la base de données) alors vous ne verrez que deux tags <br /> dans le code source de vos pages.

1

Si la boucle while conditionnelle n'est pas vraie, le contenu de la boucle while ne s'exécutera jamais. Par conséquent, s'il n'y a rien à extraire de la requête, vous ne verrez aucune sortie.

1

Est-ce que vous code afficher quelque chose, ou ignorer la sortie entièrement? S'il ignore entièrement, votre requête a renvoyé 0 ligne. S'il sort le <br /> s, vous devez vérifier vos variables. Je peux me tromper, ne sachant pas te code entier, mais en général dans ce cas, vous auriez quelque chose comme echo $result['title'] au lieu de echo $title

0

Essayez ceci:

<?php 

$result = mysql_query($query); 
while($row = mysqli_fetch_assoc($result)){ 
    echo $title.'<br/><br/>'.$message; 
} 

?> 
0

Si le titre $ et le message $ proviennent de votre mysql requête, vous devez y accéder via le tableau $ result retourné par mysqli_fetch_assoc.

echo $result['title']; 
echo $result['message']; 
0

également si vous utilisez mysqli vous voulez faire quelque chose comme ceci:

$mysqli = new mysqli("localhost", "user", "password", "db"); 

if ($result = $mysqli->query($query)) { 

    while ($row = $result->fetch_assoc()) { 
     print $row['title']; 
    } 

    $result->close(); 
} 
0

Est-ce que ce travail;

<?php 
$select = "select * from messages where user='$u'"; 

$query = mysqli_query($connect,$select) or die(mysqli_error($connect)); 

$row = mysqli_num_rows($query); 

while(($result = mysqli_fetch_assoc($query))){ 
    echo $result['title']; 
    echo '<br/>'; 
    echo '<br/>'; 
    echo $result['message']; 
} 

?> 

En fait, je me suis assuré que ce n'est pas choisir le premier résultat de la requête & se fondant ensuite qu'il y ait plus de résultats à travers la boucle afin d'imprimer le même message à plusieurs reprises. Peut-on voir toute la source?