Query is correct sorteren maar toont niet alle resultaten correct

Deze vraag hieronder werkt, maar ik lijk een rare bug te hebben. De eerste gebruiker in de tabel met gebruikers kan alle Help-vragen te zien krijgen die door alle andere gebruikers aan hen zijn gekoppeld. Maar de tweede gebruiker in de database kan alleen hulpvragen krijgen van de eerste persoon die ze in de tabel hebben en de query negeert de resultaten van andere mensen in die tabel voor die tweede persoon.

Ik vermoed dat het te maken heeft met haakjes?

Code:

//Unseen
$variis = "Need Help";
$myid = "This is the user's id;"

$sql = "select car_help.car_id, agent_names.agent_name, help_box.status, 
car_help.why_car, car_help.date_time_added, car_help.just_date, 
car_help.type, agent_names.agent_id
from car_help LEFT JOIN agent_names on car_help.agent_whois = agent_names.agent_id 
where agent_names.system_id = '$myid' and car_help.system_id='$myid' 
and added_by <> '$myid' and help_box.status = '$variis'
UNION
select magazine_help.note_id, agent_names.agent_name, help_box.status, 
magazine_help.note_name, magazine_help.date_time_added, 
magazine_help.just_date, magazine_help.type, agent_names.agent_id
from magazine_help LEFT JOIN agent_names on 
magazine_help.agent_id = agent_names.agent_id 
where agent_names.system_id='$myid' and 
magazine_help.system_id = '$myid' and added_by <> '$myid' 
and help_box.status = '$variis'
UNION
select motorcycle_help.rand_id, agent_names.agent_name, 
help_box.status, motorcycle_help.rand_name, motorcycle_help.date_time_added,     
motorcycle_help.just_date, motorcycle_help.type, agent_names.agent_id
from motorcycle_help LEFT JOIN agent_names ON 
motorcycle_help.by_who = agent_names.agent_id
where agent_names.system_id = '$myid' and 
motorcycle_help.system_id='$myid' and added_by <> '$myid' 
and help_box.status = '$variis'
UNION
select mobile_questions.bal_test_id, agent_names.agent_name, 
help_box.status, mobile_questions.bal_why, mobile_questions.date_time_added,   
mobile_questions.just_date, mobile_questions.type, agent_names.agent_id
from mobile_questions LEFT JOIN agent_names ON 
mobile_questions.agent_who_ordered = agent_names.agent_id
where agent_names.system_id = '$myid' and 
mobile_questions.system_id='$myid' and added_by <> '$myid' 
and help_box.status = '$variis'
ORDER BY date_time_added DESC LIMIT $startrow, 20";

$result = mysql_query($sql);

$query = mysql_query($sql) or die ("Error: ".mysql_error());


if ($result == "")
{
echo "";
}
echo "";


$rows = mysql_num_rows($result);

if($rows == 0)
{
print("");

}
elseif($rows > 0)
{
while($row = mysql_fetch_array($query))
{

$row1 = $row['row_name'];


print("$row1");
}

}
1

1 antwoord

where agent_names.system_id = '$myid' and 
motorcycle_help.system_id='$myid' and added_by <> '$myid' 
and help_box.status = '$variis'

retourneer de gegevens alleen als alles true is. als de tweede persoon geen overeenkomende ID heeft in alle drie de velden, zal deze niet terugkeren wat u verwachtte. maak een standaard-ID aan die de aanroepvariabele moet vervangen als $ variis leeg is. een of verklaring kan nodig zijn. en als je echo-stick ermee gaat gebruiken, doet afdrukken hetzelfde.

1
toegevoegd
het werkte echt. Ik heb de where agent_names.system_id = '$ myid' uit elke query verwijderd. Je antwoord selecteren omdat je de enige bent die het tenminste probeerde te beantwoorden. bedankt.
toegevoegd de auteur AAA, de bron