SQL-запрос, работающий в phpmyadmin, но не через mysql_query в php - PullRequest
1 голос
/ 24 июня 2011


Ну, во-первых, я француз, поэтому я надеюсь, что мой вопрос будет понятен; -)

Я знаю, что некоторые люди уже испытывали проблемы с запросами в php, которые работали в phpmyadmin. Дело в том, что каждый раз (или около того) эти люди «повторяли» свои запросы и копировали / вставляли в phpmyadmin, но так как php не всегда отображает пробелы, это всегда было проблемой.

На самом деле моя проблема в другом:
если я использую запрос

$sql = "SELECT * FROM jos_dtregister_invoice_sent"; 
$query = mysql_query($sql);
$result = mysql_fetch_array($query);

он возвращает все строки как в phpmyadmin, так и в моем php-коде, но если я хочу посмотреть в другую таблицу (с той же структурой), он просто работает в phpmyadmin, а не через мой php-код (только одна строка вместо всех из них)

Вот запрос не работает:

$sql = "SELECT * FROM jos_dtregister_receipt_sent";
$query = mysql_query($sql);
$result = mysql_fetch_array($query);

Возможно, ответ очень прост, но я признаю, что это немного сложно для меня ... Заранее большое спасибо!

Вот мой полный код:

function sendReceipt($row) {

    $to = getUserInformation($row,10);
    $from = getEventAdminEmailFromEmail($row); 
    $subject = getEventTitle($row)." - Invoice #".$row["confirmNum"]; 

    $message = $row["userFirstName"]." ".$row["userLastName"]." \n\n".getMessageToSendUser($row); 
    $headers = "From: ".$from."\r\n";

    $sql1 = "SELECT * FROM `jos_dtregister_invoice_sent`";
    $query1 = mysql_query($sql1);
    echo 'Fetched rows number: '.mysql_num_rows($query1)."<br />";
    while($row1 = mysql_fetch_array($query1)) {
            echo "Invoice Sent: ".$row1["sent"]."<br />";
    }
    $sql2 = "SELECT * FROM `jos_dtregister_receipt_sent`";
    $query2 = mysql_query($sql2);
    echo 'Fetched rows number: '.mysql_num_rows($query2)."<br />";
    while($row2 = mysql_fetch_array($query2)) {
            echo "Receipt Sent: ".$row2["sent"]."<br />";
   }
}

Ответы [ 4 ]

0 голосов
/ 24 июня 2011

Вам нужно перебрать результаты с помощью mysql_fetch_array().

while ($result = mysql_fetch_array($query)) {
  print_r($result);
}

Или, если вы хотите, чтобы все ваши результаты были в одном большом массиве ($ results):

$results = array();
while ($row = mysql_fetch_array($query)) {
   $results[] = $row;
}
0 голосов
/ 24 июня 2011
$sql = "SELECT * FROM jos_dtregister_receipt_sent";
$query = mysql_query($sql) or die(mysql_error());
$result = mysql_fetch_array($query);

Попробуйте выполнить это. В строке mysql_error () будет указано, что именно пошло не так при попытке выполнить SQL. Опубликуйте это здесь, и мы можем помочь вам немного больше.

0 голосов
/ 24 июня 2011
$sql = "SELECT * FROM jos_dtregister_receipt_sent";
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result)){
    // $row will have your data
}
0 голосов
/ 24 июня 2011

mysql_fetch_array () извлекает только строку. Имя предполагает, что она извлекает строку результата в виде массива

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...