laatste klantnummer weergeven uit meerdere tabellen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rik Engelen

Rik Engelen

16/07/2010 10:53:16
Quote Anchor link
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)
PHP script in nieuw venster Selecteer het PHP script
1
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'];
                        }    
    }
 
PHP hulp

PHP hulp

05/08/2021 15:32:32
 
Wesley Overdijk

wesley Overdijk

16/07/2010 11:06:58
Quote Anchor link
select id from jouTabel desc limit 0,1
 
Rik Engelen

Rik Engelen

16/07/2010 11:10:53
Quote Anchor link
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.
 
Wesley Overdijk

wesley Overdijk

16/07/2010 11:15:15
Quote Anchor link
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
 
Rik Engelen

Rik Engelen

16/07/2010 11:23:10
Quote Anchor link
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
 
Wesley Overdijk

wesley Overdijk

16/07/2010 11:24:53
Quote Anchor link
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
 
Rik Engelen

Rik Engelen

16/07/2010 11:26:55
Quote Anchor link
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.
 
Wesley Overdijk

wesley Overdijk

16/07/2010 11:34:27
Quote Anchor link
gah... dan een simpele if current < highest, highest = current. aan het einde heb je de hoogste in current.
 
Rik Engelen

Rik Engelen

16/07/2010 11:41:25
Quote Anchor link
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]
Gewijzigd op 16/07/2010 15:32:40 door Tom Beuckelaere
 

16/07/2010 11:45:39
Quote Anchor link
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.
 
Rik Engelen

Rik Engelen

16/07/2010 11:48:38
Quote Anchor link
snap ik maar op id en klantnr zit geen auto increment omdat ik een klant steeds in een andere tabel wil hebben.
 
Wesley Overdijk

wesley Overdijk

16/07/2010 11:50:35
Quote Anchor link
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.
 
Rik Engelen

Rik Engelen

16/07/2010 11:52:58
Quote Anchor link
dat is helaas niet mogelijk gezien de opbouw van de website die er achter hangt met de database opbouw.
 
Joren de Wit

Joren de Wit

16/07/2010 13:18:35
Quote Anchor link
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...
 
Rik Engelen

Rik Engelen

16/07/2010 14:07:08
Quote Anchor link
Ga ik doen
 
Rik Engelen

Rik Engelen

16/07/2010 14:09:56
Quote Anchor link
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]
Gewijzigd op 16/07/2010 14:20:11 door Joren de Wit
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.