2011-01-23 5 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); 
?> 

Соединение выполнено успешно, но данные не извлекаются из phpmysql и не печатаются в таблице. Почему это так?Javascript и PHPMySQL

+0

Отформатируйте свой код в следующий раз. – GolezTrol

+1

'while (mysql_fetch_row (mysql_query))' --- omg, что это?!?! – zerkms

+0

Она уже задавала вопрос раньше, и я указал на ошибку, но она полностью не знает, как получить данные из базы данных через php. Итак, я отредактировал ее вопрос, чтобы свести к минимуму ошибки. –

ответ

0

Запрос недействителен - загружайте MySQL клиента в командной строке и запустить его:

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

Возможно, вам захочется объяснить, ПОЧЕМУ этот запрос является недопустимым и предоставить рабочее решение, например 'SELECT * FROM' 3-33'' – nico

+0

К сожалению, мне трудно понять, из какого исходного поста он должен был выполнить. Сначала я подумал, что ему просто нужен запрос, который всегда возвращал бы что-то, и думал, что SELECT * FROM 3-33 эквивалентен SELECT 3-33. Теперь, когда вы упомянули об этом, я полагаю, что у него может быть таблица с именем «3-33» ... но, э-э, я не совсем уверен, почему это так. Я оставлю комментарий по самому вопросу, предлагая ему уточнить, что он пытается сделать с запросом. – Arkaaito

1

Я думаю, что вы сделали несколько ошибок. Кажется, вам не хватает базового понимания того, как эти функции работают. Почти все они возвращают некоторую переменную (например, ресурс ссылки или массив строк), которые вы можете использовать в остальной части вашего кода. Если сбой вызова, эти функции возвращают false. Поэтому вы должны проверить, действительно ли значение false (с помощью оператора ===) и продолжать, только если все в порядке. Затем вы должны использовать значение результата функции, а не сама функция. mysql_query - это просто вызов, а не результат.

<?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

«Почти все они возвращают объект» --- В этом коде нет никакого объекта вообще. – zerkms

+0

Да, ты прав. Выбрали там неправильные слова. Исправлен текст, но точка осталась прежней. – GolezTrol

Смежные вопросы