Toon posts:

[PHP] Ophogen van een select * query

Pagina: 1
Acties:
  • 37 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik ben bezig met een php script, en vraag me af of je een counter in een select query kunt zetten

Als ik onderstaand script uitvoer, laat hij met de echo, wel alle 4 de bedrijven zien, maar met de select query kijkt hij alleen naar het eerste bedrijf in de array (in dit geval "bedrijf1")

Weet iemand of dit mogelijk is? :)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
$verbinding3=mysql_connect("localhost", "naam", "ww");
$db=mysql_select_db("database", $verbinding3);

$bedrijven = array('bedrijf1', 'bedrijf2', 'bedrijf3', 'bedrijf4');
$aantalbedrijven = count($bedrijven);

for ($nummer=0; $nummer<$aantalbedrijven; $nummer++)
{
echo $bedrijven[$nummer]; echo "<BR>";
$resultaat = mysql_query("SELECT * FROM berekening where
naam = '$bedrijven[$nummer]'",$verbinding3);
}
?>

  • Grum
  • Registratie: Juni 2001
  • Niet online
Leg jezelf nog eens uit aub :P

  • El_BingO
  • Registratie: Juli 2001
  • Laatst online: 26-08 12:01
Gewoon eerst alle bedrijven ophalen middels:
"SELECT * FROM berekening"
en dan met een while lus de array/resultset printen.
De manier die jij toont, zorgt ook nog voor extra (lees:onnodig) databaseverkeer

Verwijderd

de array wegschrijven in een nieuwe variabelen en tussen elke waarde in de array "or naam=" zetten.
Deze variabelen in de sql query zetten en klaar is paul20.

je krijgt iets als
$var = "naam= bedrijf1 or naam= bedrijf2 etc etc

sqlquery wordt iets als
select * from berekening where naam= '$var'

Verwijderd

Topicstarter
Grum schreef op 08 augustus 2002 @ 09:26:
Leg jezelf nog eens uit aub :P
$bedrijven[$nummer] <---- Dit stukje zou in de mysql query elke keer moeten worden verhoogd, de eerste keer bedrijf1, dan bedrijf2, dan bedrijf3, en als laatste bedrijf4.
Maar in plaats van dat te doen, krijg ik 4x achter elkaar alleen de gegevens van bedrijf1 in beeld. :'(

Verwijderd

El_BingO schreef op 08 augustus 2002 @ 09:28:
Gewoon eerst alle bedrijven ophalen middels:
"SELECT * FROM berekening"
en dan met een while lus de array/resultset printen.
De manier die jij toont, zorgt ook nog voor extra (lees:onnodig) databaseverkeer
stel je heb er 1000000 records in staan.
Zou ik dus niet doen.

  • whoami
  • Registratie: December 2000
  • Laatst online: 11:48
Verwijderd schreef op 08 augustus 2002 @ 09:29:
[...]


stel je heb er 1000000 records in staan.
Zou ik dus niet doen.


Jij zou dus 1000000x die query laten uitvoeren? :? Dan mag je wel een tijdje wachten vooraleer je de resultaten allemaal op het scherm hebt.... :z

https://fgheysels.github.io/


Verwijderd

Verwijderd schreef op 08 augustus 2002 @ 09:29:
[...]
$bedrijven[$nummer] <---- Dit stukje zou in de mysql query elke keer moeten worden verhoogd, de eerste keer bedrijf1, dan bedrijf2, dan bedrijf3, en als laatste bedrijf4.
Maar in plaats van dat te doen, krijg ik 4x achter elkaar alleen de gegevens van bedrijf1 in beeld. :'(
Elke keer verhogen kan dus niet.

lees m'n uitleg nog eens
schrijf de array weg in een variabele met daartussen telkens "or naam="

dan krijg je toch de query die je wilt hebben

Verwijderd

whoami schreef op 08 augustus 2002 @ 09:31:
[...]

Jij zou dus 1000000x die query laten uitvoeren? :? Dan mag je wel een tijdje wachten vooraleer je de resultaten allemaal op het scherm hebt.... :z
Je leest het niet goed! |:(
Ik zeg juist dat je NIET alles moet ophalen.

Verwijderd

Topicstarter
El_BingO schreef op 08 augustus 2002 @ 09:28:
Gewoon eerst alle bedrijven ophalen middels:
"SELECT * FROM berekening"
en dan met een while lus de array/resultset printen.
De manier die jij toont, zorgt ook nog voor extra (lees:onnodig) databaseverkeer
Oja, dit is eigenlijk een stuk logischer, ik zal het zo proberen. Gelukkig zijn het maar hooguit 31 records, dus echt lang zat het laden toch niet duren.

Thnx

Verwijderd

Verwijderd schreef op 08 augustus 2002 @ 09:33:
[...]
Oja, dit is eigenlijk een stuk logischer, ik zal het zo proberen. Gelukkig zijn het maar hooguit 31 records, dus echt lang zat het laden toch niet duren.

Thnx
Dit is dus niet de beste oplossing naar mijn idee.
Je moet proberen zo weinig mogelijk resultaten van de DB terug te krijgen.
Je gaat alle waarden die je terugkrijgt (31) vergelijken met de waarden uit de array.
Beetje omslachtig niet?

Je kan beter een query opbouwen aan de hand van de array zodat je alle waarde die je nodig hebt direct goed terugkrijgt van de DB zonder dat je het naderhand nog moet bewerken.

  • whoami
  • Registratie: December 2000
  • Laatst online: 11:48
Verwijderd schreef op 08 augustus 2002 @ 09:33:
[...]


Je leest het niet goed! |:(
Ik zeg juist dat je NIET alles moet ophalen.


Nee, je moet niet alles ophalen , enkel het nodige.
Maar je moet het ook in één query doen.
(En je hoeft je hoofd niet te stoten, daar krijg je alleen koppijn van).

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 11:48
Paul20, ik zou zeggen, ga eerst SQL en PHP leren. Pluk ergens een SQL tutorial of manual van het net, en ga daar maar eerst aan de slag ipv hier om de haverklap een topic te openen.

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.