php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.03.2006, 08:12  
Gast
 
Beiträge: n/a
Standard zusammenhängende Nummern aus Datenbank auslesen

Hallo,

ich möchte ein Programm schreiben, das mir aus einer Datenbank zum Beispiel 100 Nummern aus einer Datenbank ausliest. Soweit ja kein Problem. Aber wie bekomme ich es nun hin, dass er mir nur die zusammenhängenden ausgibt?
Bsp: die Nummern von 1-50 sind frei und die von 60-110 - sind ja 100 Nummern, aber sie sollen zusammenhängend sein.

Habt ihr da eine Idee?
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 08.03.2006, 08:15  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Das gehört eigentlich ins MySQL-Forum.

Zauberwort heisst 'ORDER BY'

Select nummer FROM tabelle ORDER BY nummer

Dahinter dann halt noch dein limit, damit du nur die 100 rauskriegst.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist gerade online  
Alt 08.03.2006, 08:23  
Gast
 
Beiträge: n/a
Standard

Wieso garantiert mir denn ORDER BY, dass ich nur zusammehängende Nummern habe?
Vielleicht noch mal mein Problem:
Ich habe ein Datenbank mit Nummern. Die Nummern sind fortlaufend. Es gibt sogenannte Nummernkreise(1-100), die bestimmten Personen zugeordnet werden sollen. Nun möchte ich wissen welche Nummern noch frei sind (also NULL?!). ODER BY garantiert mir aber doch nicht, dass ich wirklich die Nummern 1-100 auslese, sondern sortiert nur die Nummern auf-oder absteigend, oder sehe ich das falsch?!

Sorry fürs Posten im falschen Forum...
 
Alt 08.03.2006, 09:21  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Das sieht du richtig. Aber ich hatte dich eingangs anders verstanden. SQL bietet dafür nicht direkt eine Funktion an. Über Umwege kriegst du das dennoch raus.

SELECT nummer FROM tabelle WHERE nummer BETWEEN 1 and 100 ORDER BY nummer

Anschliessend wertest du das Ergebnis aus und schaust im PHP, wo sich eine Lücke auftut.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist gerade online  
Alt 08.03.2006, 09:35  
Gast
 
Beiträge: n/a
Standard

Genau der Herausfinden der "Lücke" ist ja mein Problem. Der Rest ist mir klar...
 
Alt 08.03.2006, 09:58  
Erfahrener Benutzer
 
Registriert seit: 09.03.2005
Beiträge: 219
webbi
Standard

wenn du die Nummern mit einer While Schleife abfragst kannst du einfach das letzte Ergebnis in einer Variable, z.B. $alte_nummer speichern. Dann überprüfst du ob die Zahl beim nächsten Durchlauf um 1 größer ist. Wenn nicht, dann ist dort eine Lücke.

Verwende die Abfrage von mepeisen, und dann (ungetestet):

PHP-Code:
$altenummer 0;
while (
$row mysql_fetch_assoc ($result))
{
   if (
$row['nummer']!=($altenummer+1))
   {
       echo 
'Nach Nummer '.$row['nummer'].' gibt es eine Lücke';
       break;
   }
   
$altenummer $row['nummer'];

webbi ist offline  
Alt 08.03.2006, 10:04  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Was spricht eigentlich dagegen die Bedingung in die Where Klausel einzuabuen?

Code:
 .... WHERE nr >= 1 AND nr <= 100 ORDER BY nr
__________________
Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.
HStev ist offline  
Alt 08.03.2006, 10:22  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Dadurch kriegt er die Lücken innerhalb des Bereiches 1 bis 100 nicht raus und genau das will er.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist gerade online  
Alt 08.03.2006, 10:26  
Gast
 
Beiträge: n/a
Standard

Zitat:
Dadurch kriegt er die Lücken innerhalb des Bereiches 1 bis 100 nicht raus und genau das will er.
sie.... : :wink:

Ok, vielen Dank, das hat mir weitergeholfen.
 
Alt 08.03.2006, 10:29  
Gast
 
Beiträge: n/a
Standard

es heißt aber zb 100.

Stell dir mal vor es sollen X zusammenhängende/fortlaufende Nummern aus 02.989.800.000.000 bis 02.989.899.999.999 (klar Punkte weg) gesucht werden.

Es muss also ein freier Block von genau X Nummern gesucht werden. Wenn nur X-10 Nummern frei sind passt bzw geht dieser Block eben nicht.

blue
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
xyz aus function("xyz"); in Datenbank auslesen?! Nightuser PHP Tipps 2008 5 14.07.2008 05:45
prob mit datenbank auslesen ... counteam PHP Tipps 2008 22 06.07.2008 21:28
Variablen in Datenbank speichern und auslesen freehawk PHP-Fortgeschrittene 4 16.03.2008 17:22
[Erledigt] Datenbank auslesen mit register_globals off PHP Tipps 2007 14 03.01.2007 17:12
[Erledigt] Aus Datenbank auslesen mit php PHP Tipps 2006 4 04.01.2006 18:17
beim auslesen von mysql datenbank bestimmte id nicht auslsen djrace PHP Tipps 2005-2 3 10.09.2005 13:32
[Erledigt] Daten aus einer Datenbank auslesen Datenbanken 2 04.09.2005 19:13
[Erledigt] problem beim erstellen und auslesen einer datenbank PHP Tipps 2005-2 6 04.09.2005 16:55
Daten aus einer mySQL Datenbank auslesen GSJLink PHP Tipps 2005-2 6 25.07.2005 16:38
[Erledigt] Auslesen und Aktualisieren von einer MYSQL Datenbank PHP Tipps 2005-2 3 05.07.2005 14:39
Mail Adresse aus einer Datenbank auslesen? Stemmi Datenbanken 6 23.04.2005 23:24
Auslesen aus der Datenbank nixdorf PHP Tipps 2005 7 06.02.2005 21:40
auslesen aus datenbank und sortieren! PHP Tipps 2004-2 15 04.12.2004 15:56
Auslesen von Daten aus einer mysql Datenbank + Editieren vampsoftchef PHP Tipps 2004-2 5 15.11.2004 08:31
[Erledigt] meta refresh beim auslesen aus einer Datenbank umgehen Datenbanken 1 14.09.2004 20:10

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
nummer aus der datenbank auslesen, java lücken nummernkreis, zusammenhängende nummern

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:12 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.