Computergenie.nl    

Computergenie.nl
  Registreer!
  Registreer
Homepage
Home
Top 10
Top 10
Forum
Forum
Prijsindex
Prijsindex
Nieuws
Nieuws
Downloads
Downloads
Hulp & Uitleg
Hulp & Uitleg
Uitgebreid zoeken
 
  Zoeken •  Gebruikerslijst  •  Gebruikersgroepen   •  Registreer  •  Profiel  •  Log in om je privť berichten te bekijken  •  Ben je al lid?  Log in! 
Ben je al lid?  Log in!
Kies uw onderwerp:
Computer-Cafť
Knowledge Base
Hardware
Software
Internet & netwerken
Games
Scripten & programmeren
Digitale fotografie & video
Multimedia
GSM & mobile
Sitecheck & links
OfficiŽle mededelingen
Feedback
ISL Light
Aanbiedingen
Markt-plaats
Hulp & Uitleg

Sponsors:

Cloud VPS

Relaties:

PC Beveiliger
Forum » Scripten & programmeren » nummering
[PHP]  nummering

Nieuw onderwerpNieuw antwoord
renevanh Bericht Geplaatst op 13-10-2008 Reageer met quote
Beheerder
Ik ben bezig met een berichtsysteem inclusief een backend.
Nu moeten alle berichten een nummer hebben. Niet zomaar een nummer maar het volgende nummer.
Dat gaat natuurlijk prima zolang er berichten worden aangemaakt. Tel het aantal rijen in de database (MySQL), +1 en klaar.
Maar als de admin een bericht verwijderd moeten alle nummers geupdate worden.
Bijvoorbeeld: er zijn 5 berichten (1 t/m 5). Als bericht 3 nu wordt verwijderd moet bericht 4 veranderen naar bericht 3 en bericht 5 naar 4.

Onderstaand scriptje heb ik in elkaar geknutseld en hoewel het er logisch uitziet (als je het mij vraagt) wil niet werken.

Code:

$query2 = mysql_query("SELECT nr FROM BERICHT ORDER BY nr");
 
$nummer = 0;
while ($result2 = mysql_fetch_array($query2)) {
  mysql_query("UPDATE BERICHT SET nr = '".$nummer."'");
  $nummer++;
}


Alle andere code in het betreffende bestand is irrelevant. Er is een verbinding met de database en die is ok.

Ziet iemand wat ik fout doe?




Keyboard not found, press F1 to continue...
Matel Bericht Geplaatst op 14-10-2008 Reageer met quote
Beheerder
Waarom niet een uniek nummer (primary key) gebruiken en dat blijven doornummeren? Dat is hoe het normaal gaat iig.



Geduld is een schone zaak...maar je moet er wel de tijd voor hebben
Leuker kunnen we het niet maken...
renevanh Bericht Geplaatst op 14-10-2008 Reageer met quote
Beheerder
Inderdaad. Ik wilde dit nummer echter gebruiken om ook de berichten zelf te nummeren, maar (ook na een discussie op webdeveloper.com) ik heb ingezien dat ik dit beter anders kan aanpakken.



Keyboard not found, press F1 to continue...
vosManz Bericht Geplaatst op 14-10-2008 Reageer met quote
Technische man
Wat was het resultaat van je eerste script dan? Je hebt nu namelijk geen WHERE in je query staan. Dat zorgt er dus voor dat elke keer ALLE records het laatste $nummer krijgen, als het goed is waren ze dus altijd gelijk aan elkaar, en gelijk aan het hoogste getal.

Code:
$query2 = mysql_query("SELECT nr FROM BERICHT ORDER BY nr");
 
$nummer = 0;
while( $result2 = mysql_fetch_assoc( $query2 ) ) {
  mysql_query( "UPDATE BERICHT SET nr = ".$nummer." WHERE nr = ".$result2['nr'] );
  $nummer++;
}

Zoiets zou opzich moeten werken (niet getest).. Maar een auto_increment op een integer zetten is toch wel een stuk handiger :)

Het nummeren van de berichten zelf kun je beter in de pagina doen waar je de berichten weergeeft.




::: vosManz :::
renevanh Bericht Geplaatst op 14-10-2008 Reageer met quote
Beheerder
Het script deed eigenlijk helemaal niks...
Volgens mij doorloopt het script alle resultaten en update ze per stuk, maar dat werkte dus niet. Vermoedelijk omdat de 'nr' ook de primary is en overal hetzelfde nummer niet mag.

Maar wat je zegt: auto-increment erop en nummers in het outputscript opnemen is inderdaad een veel beter idee.




Keyboard not found, press F1 to continue...
Nieuw onderwerpNieuw antwoord   


Forum » Scripten & programmeren » nummering

Powered by Cloud VPS - High Availability Cloud Servers