2011-01-23 15 views
-2
<?php 
$host = 'localhost'; 
$dbusername ='root'; 
$dbpassword =''; 
$database ='mp19'; 

$link =mysql_connect('localhost', 'root','12345678'); 
$db_selected = mysql_select_db('mp19', $link); 

if (!$link) 
    {exit("Connection Failed: " . $link);} 

$sql="(SELECT * FROM 3-33)"; 
$result=mysql_query($sql, $link); 


if (!$result) 
    {exit("Error in SQL");} 

echo "<table><tr>"; 
echo "<th>Date</th>"; 
while ($row=mysql_fetch_assoc($result)) 
    { 
    var_dump($row); 
    echo "<td>$row['date']</td></tr>"; 
    } 
mysql_close($link); 
?> 

La connexion est réussie, mais les données ne reçoit pas tiré par les cheveux de phpmysql ni ne s'imprime dans une table. Pourquoi cela est-il ainsi?Javascript et PHPMySQL

+0

Veuillez formater votre code la prochaine fois. – GolezTrol

+1

'while (mysql_fetch_row (mysql_query))' --- omg, qu'est-ce que c'est?!?! – zerkms

+0

Elle a déjà posé une question auparavant et j'ai signalé une erreur, mais elle ne sait pas comment extraire les données de la base de données via php. Donc, j'ai édité sa question pour minimiser les erreurs –

Répondre

0

La requête est invalide - essayez de charger votre client MySQL à la ligne de commande et l'exécuter:

mysql -uroot mp19 -p 
(SELECT * FROM 3-33) 
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '3-33' at line 1 
+1

Vous pouvez expliquer pourquoi cette requête est invalide et fournir une solution de travail, comme 'SELECT * FROM' 3-33'' – nico

+0

Malheureusement, il est difficile pour moi de comprendre à partir du message original ce qu'il voulait accomplir. Au début, je pensais qu'il voulait juste une requête qui retournerait toujours quelque chose, et pensait que SELECT * FROM 3-33 était équivalent à SELECT 3-33. Maintenant que vous le mentionnez, je suppose qu'il pourrait avoir une table nommée '3-33' ... mais, euh, je ne suis pas vraiment sûr que ce soit le cas non plus. Je vais laisser un commentaire sur la question elle-même, suggérant qu'il clarifie ce qu'il essaie de faire avec la requête. – Arkaaito

1

Je pense que vous avez fait quelques erreurs. Il semble qu'il vous manque une compréhension de base de la façon dont ces fonctions fonctionnent. Presque tous retournent une variable (comme une ressource de lien ou un tableau de lignes) que vous pouvez utiliser dans le reste de votre code. Si un appel échoue, ces fonctions renvoient false. Donc, vous devriez vérifier si la valeur est explicitement false (en utilisant l'opérateur ===) et continuer seulement si tout va bien. Ensuite, vous devez utiliser la valeur de résultat de la fonction, pas la fonction elle-même. mysql_query est simplement l'appel, pas le résultat.

<?php 
$host = 'localhost'; 
$dbusername ='root'; 
$dbpassword =''; 
$database ='mp19'; 

$link = mysql_connect('localhost', 'root','12345678'); 

if ($link === false) 
{ 
    exit("Connection Failed: " . mysql_error()); 
} 

if (mysql_select_db('mp19', $link) === false) 
{ 
    exit("Could not select database mp19: " . mysql_error()); 
} 

// Is '3-33' really your table name?! You should pick another name. 
$sql = "(SELECT * FROM 3-33)"; 

$resultset = mysql_query($sql, $link); 

// (!$sql)? $sql SQL is always set here. It is just the string 
if ($resultset === false) 
{ 
    exit("Error in SQL: " . mysql_error()); 
} 

echo "<table><tr>"; 
echo "<th>Date</th>"; 

while ($row = mysql_fetch_assoc($resultset)) 
{ 
    $date = $row['fieldname']; 
    echo "<td>$date</td></tr>"; 
} 

mysql_close($link); 

?> 
+0

"Presque tous retournent un objet" --- Dans ce code il n'y a aucun objet du tout. – zerkms

+0

Oui, vous avez raison. Choisi les mauvais mots là-bas. Correction du texte, mais le point est toujours le même. – GolezTrol