login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Rangschikken

Offline zwobbel - 05/01/2007 14:28
Avatar van zwobbelPHP gevorderde Ik heb volgende query:
  1. ORDER BY `aflevering` ASC


Maar nu rangschikt hij als volgt:
  1. Aflevering 100
  2. Aflevering 101
  3. Aflevering 102
  4. Aflevering 103
  5. Aflevering 99


Maar ik wil het zo:
  1. Aflevering 99
  2. Aflevering 100
  3. Aflevering 101
  4. Aflevering 102
  5. Aflevering 103


Hoe doe ik dat?

19 antwoorden

Gesponsorde links
Offline Kr4nKz1n - 05/01/2007 14:32 (laatste wijziging 05/01/2007 14:33)
Avatar van Kr4nKz1n Onbekend Dan moet je het veld INTEGER geven, of staat Aflevering er ook bij?
Offline Dark_Paul - 05/01/2007 14:33
Avatar van Dark_Paul PHP ver gevorderde Wat is 'aflevering' voor een type veld? Wat staat er allemaal in?
Offline zwobbel - 05/01/2007 14:40 (laatste wijziging 05/01/2007 14:42)
Avatar van zwobbel PHP gevorderde Het is nu een varchar 35 waardes lang.

Als ik de data uitlees krijg ik letterlijk te lezen:
Aflevering 100

Een integer kan ik dus niet hier op toepassen
Offline Kr4nKz1n - 05/01/2007 14:42
Avatar van Kr4nKz1n Onbekend Tja dan hebben we een probleem.
Kan je Aflevering niet weg laten? En dan maak je er gewoon INT van?
Offline Dark_Paul - 05/01/2007 14:45
Avatar van Dark_Paul PHP ver gevorderde Noem het veld 'aflevering', maak er een INT van en als je wilt printen zet je gewoon: print 'Aflevering '.$row['aflevering']; neer.
Offline zwobbel - 05/01/2007 14:54
Avatar van zwobbel PHP gevorderde Ja maar dat gaat niet want het afleveringen nam ik als voorbeeld.
In feite staat daar het woorde van de aflevering.
De ene keer is het bleach de andere keer naruto en ga zo maaar door dus het zal anders moette?
Offline vinTage - 05/01/2007 14:58
Avatar van vinTage Nieuw lid Kan je dan niet gewoon op id selecteren en die sorteren ?
Ik neem aan dat aflevering 101 later is toegevoegd dan aflevering 99.
Offline marten - 05/01/2007 15:01
Avatar van marten Beheerder Split it up 

Oftewel ---> 1 veld met aflevering 101

maak je van
2 velden 1 met de naam en 1 met het nummer
Offline webstab - 05/01/2007 15:01 (laatste wijziging 05/01/2007 15:02)
Avatar van webstab PHP ver gevorderde Databasestructuur
Citaat:
aflevering: varchar(35);
nummer: int(5);

SorteerQuery
  1. ORDER BY aflevering ASC,nummer ASC

Hoe omzetten?
Zorg dat de velden hierboven in database zitten.
  1. <?php
  2. // met de losse hand geschreven, niet getest
  3. // NEEM BEST EERST BACK-UP
  4. $select = mysql("SELECT * FROM ...");
  5. while($geg = mysql_fetch_array($select)) {
  6. $oorspronkelijk = $geg['aflevering'];
  7. $nieuw = explode(" ", $oorspronkelijk);
  8. $aflevering = $nieuw[0];
  9. $nummer = $nieuw[1];
  10. mysql_query("UPDATE ... SET aflevering='".$aflevering."',
  11. nummer='".$nummer."'
  12. WHERE aflevering='".$oorspronkelijk."'");
  13. }
  14. ?>
Dus nu heb je het gewoon opgesplist, maar dat sorteer veel gemakkelijker...
Offline Kr4nKz1n - 05/01/2007 15:28
Avatar van Kr4nKz1n Onbekend SorteerQuery
Citaat:
ORDER BY nummer ASC, aflevering ASC

Zo neem ik aan. Als elke aflevering anders heet, krijg je een alfabetische lijst, en niet numeriek.
Offline zwobbel - 05/01/2007 16:03 (laatste wijziging 05/01/2007 16:05)
Avatar van zwobbel PHP gevorderde
Citaat:
Kan je dan niet gewoon op id selecteren en die sorteren ?
Ik neem aan dat aflevering 101 later is toegevoegd dan aflevering 99.


Neen niet echt we hebbe eerst de eerst 100 tem 200 geupload en nu de 1 tem 99 omdat we ze daarvoor nog niet hadden :x

Maar nu moet ik AL die afleveringen die we al in de database hebben gevoerd gaan aanpassen ofzo?
Jezus lief dat is geen doen  

Dit is mijn database structuur:
  1. afleveringen_database
  2. -------------------------------------------------------------
  3. ID | Media_ID | Serie_ID | aflevering | download_url
Offline Kr4nKz1n - 05/01/2007 16:10
Avatar van Kr4nKz1n Onbekend webstab heeft wat voor je gemaakt.

  1. <?php
  2. // met de losse hand geschreven, niet getest
  3. // NEEM BEST EERST BACK-UP
  4. $select = mysql("SELECT * FROM ...");
  5. while($geg = mysql_fetch_array($select)) {
  6. $oorspronkelijk = $geg['aflevering'];
  7. $nieuw = explode(" ", $oorspronkelijk);
  8. $aflevering = $nieuw[0];
  9. $nummer = $nieuw[1];
  10. mysql_query("UPDATE ... SET aflevering='".$aflevering."',
  11. nummer='".$nummer."'
  12. WHERE aflevering='".$oorspronkelijk."'");
  13. }
  14. ?>

Maak nog even het veld nummer aan en run dit scriptje.

Op de plek van de ... jouw tabel.
Offline zwobbel - 05/01/2007 16:24 (laatste wijziging 05/01/2007 16:27)
Avatar van zwobbel PHP gevorderde Ik krijg een error

  1. Warning: Wrong parameter count for mysql() in /home/.nola/spitfire/anime2leech.com/fix.php on line 6
  2.  
  3. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/.nola/spitfire/anime2leech.com/fix.php on line 7


  1. <?
  2. $select = mysql("SELECT * FROM `afleveringen_database`");
  3. while($geg = mysql_fetch_array($select)) {
  4. $oorspronkelijk = $geg['aflevering'];
  5. $nieuw = explode(" ", $oorspronkelijk);
  6. $aflevering = $nieuw[0];
  7. $nummer = $nieuw[1];
  8. mysql_query("UPDATE `afleveringen_database` SET aflevering='".$aflevering."',
  9. nummer='".$nummer."'
  10. WHERE aflevering='".$oorspronkelijk."'");
  11. }
  12. ?>
Offline webstab - 05/01/2007 16:28 (laatste wijziging 05/01/2007 16:28)
Avatar van webstab PHP ver gevorderde Tuurlijk moet dat mysql_query( zijn ipv mysql(... en zet er ook eens or die(mysql_error()); achter.
Offline Kr4nKz1n - 05/01/2007 16:29
Avatar van Kr4nKz1n Onbekend Ik zie de functie count niet ??
Offline zwobbel - 05/01/2007 16:31 (laatste wijziging 05/01/2007 16:31)
Avatar van zwobbel PHP gevorderde Oke heb de fout al gevonden maar als ik het script gerunt heb is niet alles goed aangepast de helft van de afleveringen bevatten nu geen nummer
Offline Kr4nKz1n - 05/01/2007 16:47 (laatste wijziging 05/01/2007 16:51)
Avatar van Kr4nKz1n Onbekend En de helft van de afleveringen heeft maar de helft van de titel zeker? 

Komt omdat als dit hebt:
Site Masters 5
Dus aflevering Site Masters en nummer 5
Krijg je als aflevering Site en als nummer Masters, en Masters is geen getal.

Dus dit script is inprincipe waardeloos. Even een count etc. ertussen zetten.

-Edit-
Ik kwam er opeens op. Op phpexperience staat een script om je email adres om te zetten met at en dot etc.

http://www.phpexperience.nl/scripts/script/5

Volgens mij moet je dit principe gebruiken
Offline zwobbel - 05/01/2007 16:54 (laatste wijziging 05/01/2007 16:55)
Avatar van zwobbel PHP gevorderde Yeah, But how 
Verdoemme toch eh ik dacht ik zal da allemaal even snel ordennen.
Dit slaagt toch wel tegen   lol waarom had ik dit niet vanaf het begin ingevoerd?  
Offline Simon - 05/01/2007 17:18
Avatar van Simon PHP expert $nummer = end($nieuw);
zal zeker het nummer zijn, nu nog de aflevering volledig meenemen
(ik edit wel als ik de oplossing zie )
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.278s