probleem met 2 query´s

Status
Niet open voor verdere reacties.

kritinet

Gebruiker
Lid geworden
25 nov 2007
Berichten
118
Hoi
ik heb volgende script met 2 query´s met de zelfde tabel van mijn database. Mijn probleem is dus dat alleen de een OF de ander werkt, maar als ik ze dus zo als nu samen heb werken ze niet meer ! Heeft er iemand een oplossing voor hoe ik ze met elkaar kan verbinden dat ze dus beiden op de zelfde pagina werken ?


PHP:
<?php 

$query = "SELECT country, COUNT(name) AS total FROM accos GROUP BY country";
$result = mysql_query($query) or die(mysql_error());
 
$search=$_POST["search"];
$result = mysql_query("SELECT * FROM accos WHERE name LIKE '%$search%'");
while($r=mysql_fetch_array($result))
{	
   $name=$r["name"];
   $type=$r["type"];
   $description=$r["description"];
   $village=$r["village"];
   $country=$r["country"];
   $streek=$r["streek"];
    $url=$r["url"];
	 $image=$r["image"];
      
}

?>
 
Je overschrijft $result, dus alleen de laatste query zal werken.

PHP:
$result = mysql_query ( "SELECT * FROM accos WHERE name LIKE '%" . $_POST[ 'search' ] . "%'" );
while( $r = mysql_fetch_assoc ( $result ) ) {   
    $name = $r[ "name" ];
    $type = $r[ "type" ];
    $description = $r[ "description" ];
    $village = $r[ "village" ];
    $country = $r[ "country" ];
    $streek = $r[ "streek" ];
    $url = $r[ "url" ];
    $image = $r[ "image" ];
}

Het zou zo gewoon moeten werken. We kunnen aan deze code niet zien wat je met die andere query wilt.

Daarnaast is het 'overpompen' (om maar eens een mede-Helpmijer te quoten) van variabelen zeer onnodig.

Maar als je eens vertelt wat je met die eerste query wilt, kunnen we je daar misschien nog mee helpen.
 
Laatst bewerkt:
Hoi Erik
de 1ste query is voor het uitlezen van de DB dat ik een lijst krijg met accommodaties en de 2de query is voor het zoeken in de database !
en wat bedoel je precies met het overpompen ?

http://www.estero-travel.com
 
Met overpompen bedoel ik dat je in je WHILE de waarden uit je array allemaal in een aparte variabele stopt. Niet nodig en zonde van je resources. Het komt de efficiëncy niet ten goede.

Ik zie je de resultaten van de eerste query nergens gebruiken. Als je die onder de WHILE pas gebruikt, dan zou je gewoon zo kunnen doen:

PHP:
$result = mysql_query ( "SELECT * FROM accos WHERE name LIKE '%" . $_POST[ 'search' ] . "%'" );
while( $r = mysql_fetch_assoc ( $result ) ) {   
    $name = $r[ "name" ];
    $type = $r[ "type" ];
    $description = $r[ "description" ];
    $village = $r[ "village" ];
    $country = $r[ "country" ];
    $streek = $r[ "streek" ];
    $url = $r[ "url" ];
    $image = $r[ "image" ];
}

$query = "SELECT country, COUNT(name) AS total FROM accos GROUP BY country";
$result = mysql_query ( $query ) or die ( mysql_error () );

Maar je kunt ook gewoon de queries in andere variabelen stoppen, evenals de results.
 
Perfect,:thumb: dat werkt nu. BEDANKT ! maar nu zoek ik alleen maar in de kolom "name" . ik wil nu graag ook bv. in "streek" zoeken, maar ik heb het met AND geprobeerd maar dat werkt niet zo makkelijk. heb jij daar een oplossing voor ?
 
PHP:
$result = mysql_query ( "SELECT * FROM accos WHERE name LIKE '%" . $_POST[ 'search' ] . "%' OR streek LIKE '%" . $_POST[ 'search' ] . "%'" );
 
Ahh ja , tuurlijk het is OR en niet AND :rolleyes:
maar nu word alleen 1 resultaat getoont. ik weet dat ik normal gesproken zoiets als
PHP:
<?php 
while ($row = mysql_fetch_array( $result_aanbiedingen)) ?>
moet inbouwen, maar ik heb al
PHP:
<?
php while( $r = mysql_fetch_assoc ( $result ) ) {   
    $name = $r[ "name" ];
    $type = $r[ "type" ];
    $description = $r[ "description" ];
    $village = $r[ "village" ];
    $country = $r[ "country" ];
    $streek = $r[ "streek" ];
    $url = $r[ "url" ];
    $image = $r[ "image" ];
}
?>
Dus hoe los ik dat nu op dat alle resultaten getoont worden ?
 
Je overschrijft nu continu de variabelen. Je moet óf een lijst met arrays aanmaken, óf je moet de hele toon code in de while zetten.
 
Ergens doe je waarschijnlijk iets als:

PHP:
echo $name;
echo $type;

// etc.

Dat moet je IN je WHILE zetten. Dus tussen de { } achter while ( $r = ...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan