laatste klantnummer weergeven uit meerdere tabellen
Ik wil graag het laatste klantnummer buiten de for loop hebben maar kom er niet uit hoe dit doen. Ik haal nu uit alle tabellen de hoogste op maar wil hiervan het hoogste nummer hebben.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// HAAL AANTAL BEDRIJVEN TABELLEN ID'S OP
$id_bedrijven_categorie = array();
$query_id_bedrijven_categorie = mysql_query("select id from bedrijven_categorieen") or die(mysql_error());
while ($r = mysql_fetch_assoc($query_id_bedrijven_categorie))
{
$id_bedrijven_categorie[] = $r['id'];
}
// Tel hoeveel records er zijn
$id_bedrijven_categorie_aantal = count($id_bedrijven_categorie);
$id_bedrijven_categorie_aantal = $id_bedrijven_categorie_aantal - 1;
for ($i = 0; $i <= $id_bedrijven_categorie_aantal; $i++)
{
$query_select = mysql_query("select max(klantnummer) as hoogste_klantnummer, max(id) as hoogste_id from bedrijven_".$id_bedrijven_categorie[$i]." limit 1") or die(mysql_error());
while ($r = mysql_fetch_assoc($query_select))
{
$hoogste_klantnummer = $r['hoogste_klantnummer'];
$hoogste_id = $r['hoogste_id'];
}
}
$id_bedrijven_categorie = array();
$query_id_bedrijven_categorie = mysql_query("select id from bedrijven_categorieen") or die(mysql_error());
while ($r = mysql_fetch_assoc($query_id_bedrijven_categorie))
{
$id_bedrijven_categorie[] = $r['id'];
}
// Tel hoeveel records er zijn
$id_bedrijven_categorie_aantal = count($id_bedrijven_categorie);
$id_bedrijven_categorie_aantal = $id_bedrijven_categorie_aantal - 1;
for ($i = 0; $i <= $id_bedrijven_categorie_aantal; $i++)
{
$query_select = mysql_query("select max(klantnummer) as hoogste_klantnummer, max(id) as hoogste_id from bedrijven_".$id_bedrijven_categorie[$i]." limit 1") or die(mysql_error());
while ($r = mysql_fetch_assoc($query_select))
{
$hoogste_klantnummer = $r['hoogste_klantnummer'];
$hoogste_id = $r['hoogste_id'];
}
}
select id from jouTabel desc limit 0,1
Dit werkt volgens mij niet ik loop nu namelijk meerdere tabellen en als ik dan echo in de loop zie ik van elke tabel het hoogste getal.
Rik Engelen op 16/07/2010 11:10:53:
Dit werkt volgens mij niet ik loop nu namelijk meerdere tabellen en als ik dan echo in de loop zie ik van elke tabel het hoogste getal.
Deze query voer je dan ook uit na de loop.
EDIT:
if($id_bedrijven_categorie_aantal == $i)
{
$r['hoogste_id'];
}
Gewijzigd op 16/07/2010 11:16:49 door wesley Overdijk
Hmmm snap het even niet meer ben nog een beginner.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DESC limit 0,1' at line 1
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DESC limit 0,1' at line 1
Een beginner, uuuh oke... google? Is een geweldige tool die de niet-beginners gebruiken om informatie te winnen. www.google.nl. je hoeft alleen maar in te tikken wat je zoekt. Bijvoorbeeld 'get the last id of a table'
http://www.google.com/search?client=ubuntu&channel=fs&q=get+the+last+id+of+a+table&ie=utf-8&oe=utf-8
http://www.google.com/search?client=ubuntu&channel=fs&q=get+the+last+id+of+a+table&ie=utf-8&oe=utf-8
weet ik maar kon het niet vinden.
maar het gaat niet om de laatste id maar ik ga in alle tabellen kijken naar het hoogste klantnummer ik wil dan van alle tabellen een kleine 159 het laatst gebruikte klantnummer weten. de functie get last id ken ik wel maar dat wil ik niet hebben zie mijn eerste bericht.
maar het gaat niet om de laatste id maar ik ga in alle tabellen kijken naar het hoogste klantnummer ik wil dan van alle tabellen een kleine 159 het laatst gebruikte klantnummer weten. de functie get last id ken ik wel maar dat wil ik niet hebben zie mijn eerste bericht.
gah... dan een simpele if current < highest, highest = current. aan het einde heb je de hoogste in current.
okeej maar waar zet ik dat dan in mijn code ?
-- bericht samengevoegd, laatste was om 16/07/2010 11:45:11 --
dit stukje is het toch waar ik dat moet doen:
for ($i = 0; $i <= $id_bedrijven_categorie_aantal; $i++)
{
$query_select = mysql_query("select max(klantnummer) as hoogste_klantnummer, max(id) as hoogste_id from bedrijven_".$id_bedrijven_categorie[$i]." limit 1") or die(mysql_error());
while ($r = mysql_fetch_assoc($query_select))
{
$hoogste_klantnummer = $r['hoogste_klantnummer'];
$hoogste_id = $r['hoogste_id'];
}
if ($hoogste_klantnummer < $hoogste_klantnummer)
{
$hoogste_klantnummer_totaal = $hoogste_klantnummer;
}
}
$klantnummer = $hoogste_klantnummer_totaal+1;
$klantid = $hoogste_id_totaal+1;
Binnen de 24 uur geen nieuwe post plaatsen, graag uw huidige post wijzigen (niet bumpen).[/modedit]
-- bericht samengevoegd, laatste was om 16/07/2010 11:45:11 --
dit stukje is het toch waar ik dat moet doen:
for ($i = 0; $i <= $id_bedrijven_categorie_aantal; $i++)
{
$query_select = mysql_query("select max(klantnummer) as hoogste_klantnummer, max(id) as hoogste_id from bedrijven_".$id_bedrijven_categorie[$i]." limit 1") or die(mysql_error());
while ($r = mysql_fetch_assoc($query_select))
{
$hoogste_klantnummer = $r['hoogste_klantnummer'];
$hoogste_id = $r['hoogste_id'];
}
if ($hoogste_klantnummer < $hoogste_klantnummer)
{
$hoogste_klantnummer_totaal = $hoogste_klantnummer;
}
}
$klantnummer = $hoogste_klantnummer_totaal+1;
$klantid = $hoogste_id_totaal+1;
Binnen de 24 uur geen nieuwe post plaatsen, graag uw huidige post wijzigen (niet bumpen).[/modedit]
Gewijzigd op 16/07/2010 15:32:40 door Tom Beuckelaere
Je moet een id (met dus auto increment) alleen gebruiken voor een unieke waarde. Je kunt er verder niks aan afleiden.
Dat het toevallig steeds met 1 opgehoogd wordt betekend dus niet dat het een rij wordt van 1,2,3,4,5. Als je een rij verwijderd, dan blijft de database wel doortellen. Ook is het bijvoorbeeld zo dat bij postgresql letters worden gebruikt.
Dat het toevallig steeds met 1 opgehoogd wordt betekend dus niet dat het een rij wordt van 1,2,3,4,5. Als je een rij verwijderd, dan blijft de database wel doortellen. Ook is het bijvoorbeeld zo dat bij postgresql letters worden gebruikt.
snap ik maar op id en klantnr zit geen auto increment omdat ik een klant steeds in een andere tabel wil hebben.
Rik Engelen op 16/07/2010 11:48:38:
snap ik maar op id en klantnr zit geen auto increment omdat ik een klant steeds in een andere tabel wil hebben.
You're doing it wrong. Ik zou je taktiek eens aanpassen.
dat is helaas niet mogelijk gezien de opbouw van de website die er achter hangt met de database opbouw.
Zet alle klantnummers die je uit de verschillende tabellen selecteert in een array en gebruik de PHP functie max() om de hoogste waarde te vinden...
Ga ik doen
super tnx man
Graag niet bumpen; twee berichten van jezelf na elkaar binnen 24 uur plaatsen. Heb je een toevoeging aan je vorige bericht, gebruik dan het 'wijzigen' icoontje.[/modedit]
Graag niet bumpen; twee berichten van jezelf na elkaar binnen 24 uur plaatsen. Heb je een toevoeging aan je vorige bericht, gebruik dan het 'wijzigen' icoontje.[/modedit]
Gewijzigd op 16/07/2010 14:20:11 door Joren de Wit




