2013-09-05 3 views
0

У меня есть веб-страница, которая отправляет запрос в мою базу данных MySQL, чтобы получить информацию о поставщиках моей компании и отразить результаты (все до сих пор прекрасно). Затем он делает второй запрос, чтобы проверить, есть ли какие-либо известные контакты, связанные с этим поставщиком:Второй MySQL-запрос не работает

while ($row = mysqli_fetch_array($result)) { 
    $contact = $row["contact"]; 
    echo $row["name"] . "<br>" . $row["category"] . "<br>" . "Telephone: " . 
     $row["telephone"] . "<br>" . "Fax: " . $row["fax"] . "<br>" . 
     $row["email"] . "<br>" . $row["address"] . "<br>" . 
     $row["postcode"] . "<br><br>" . "Contact: " . 
     $contact . "<br>"; 
    $resultContact = mysqli_query($con,"SELECT * FROM contacts WHERE name = 
     '$contact'"); 
    while($rowContact = mysqli_fetch_array($resultContact)) { 
     echo $rowContact["telephone"] . "<br>" . $rowContact["email"]; 
     echo "<br>"; 
    } 
} 

$row (от первого запроса и работает.) Тем не менее, echo $rowContact["telephone"] . "<br>" . $rowContact["email"]; просто печатает пробела.

Благодаря

EDIT: если я использую строковые литералы в тех случаях, когда положение, она работает как положено. Тем не менее, я использовал переменные точно так же, как я сейчас в первом запросе, и это работает! Я смущен :(

EDIT 2: первый запрос: $result = mysqli_query($con,"SELECT * FROM suppliers WHERE LOWER(name) = LOWER('$searchText')");

EDIT 3: результат делает var_dump($resultContact);: object(mysqli_result)#3 (5) { ["current_field"]=> int(0) ["field_count"]=> int(4) ["lengths"]=> NULL ["num_rows"]=> int(0) ["type"]=> int(0) } Я предполагаю, что это означает, что запрос возвращается с таблицей хорошо, но где положение не сравнивая имя контакта, как я хочу, чтобы ...

+0

Должно ли 'WHERE name = '$ contact'' быть' WHERE name =' $ row ["name"] '' – SeanWM

+0

do a var_dump $ resultContact – Mihai

+0

Почему вы выполняете два запроса вместо запроса обеих таблиц сразу с помощью ПРИСОЕДИНИТЬСЯ? – Barmar

ответ

0

Ваш запрос должен быть mysql_query, не mysqli_query Это правильный код:.

//Your db connection 
mysql_connect('localhost','root',''); 
mysql_select_db('database'); 

//queries and data 
$result = mysql_query("SELECT * FROM suppliers WHERE LOWER(name) = LOWER('$searchText')"); 
while ($row = mysql_fetch_array($result)) { 
    $contact = $row["contact"]; 
    echo $row["name"] . "<br>" . $row["category"] . "<br>" . "Telephone: " . 
     $row["telephone"] . "<br>" . "Fax: " . $row["fax"] . "<br>" . 
     $row["email"] . "<br>" . $row["address"] . "<br>" . 
     $row["postcode"] . "<br><br>" . "Contact: " . 
     $contact . "<br>"; 
    $resultContact = mysql_query("SELECT * FROM contacts WHERE name = 
     '$contact'"); 
    while($rowContact = mysql_fetch_array($resultContact)) { 
     echo $rowContact["telephone"] . "<br>" . $rowContact["email"]; 
     echo "<br>"; 
    } 
} 
+0

Это вызывает «Предупреждение: mysql_fetch_array() ожидает, что параметр 1 будет ресурсом, boolean задано« в строке времени » – Barnaby

+0

Можете ли вы дать первый запрос sql –

+0

Кроме того, почему я не могу использовать mysqli_query? – Barnaby

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