php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.01.2012, 12:58  
Benutzer
 
Registriert seit: 01.11.2010
Beiträge: 96
PHP-Kenntnisse:
Anfänger
Internetdepp ist in Verruf geraten
Standard [Erledigt] läuft sich tot.. warum nur??

es läuft und läuft und läuft

ich will überprüfen of der/die/das SESSION[Slot] in der Tabelle vorhanden ist, wenn ja soll eine neue erzeugt werden...
aber bei dem Script läuft das ins nirvana....wenn die SESSION[Slot] nicht vorhanden ist dann klappt das...

Code:
.....
$doppelte = mysql_query("SELECT id FROM t_slot WHERE id LIKE '$_SESSION[Slot]'");
	
	while(mysql_num_rows($doppelte)==1){ 
		$Slot_id = md5( uniqid() ); 
		echo "nein keine doppelten<br/>";
		echo $Slot_id;
		}
sorry hat sich erledigt..... sollte natürlich solange machen bis $doppelte==0 ich depp.... daher der nick hier....grins

Geändert von Internetdepp (26.01.2012 um 13:05 Uhr).
Internetdepp ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 26.01.2012, 13:04  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.631
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

PHP-Code:
    while(mysql_num_rows($doppelte)==1){ 
Wird mysql_num_rows jemals ungleich 1 sein?

Du suchst wohl eher IF anstatt While...

Zitat:
$doppelte==0
Da bekommst du mit While das gleiche Problem wenn $doppelte nicht innerhalb der Schleife mit einer neuen Ressource gefüllt wird.
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

Geändert von Dark Guardian (26.01.2012 um 13:07 Uhr).
Dark Guardian ist offline   Mit Zitat antworten
Alt 26.01.2012, 13:06  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.141
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

1. Was gibt die query direkt in/an der DB aus, mit einem konkrekten Beispielwert?

2. $_SESSION[Slot] .. Slot ist sicher keine Konstante, schon mal error_reporting richitg enigestellt?

http://www.php.de/wiki-php/index.php...ging:Leitfaden

LG
__________________
Keine Zahl != ein Zeichen das keine Zahl ist
hausl ist offline   Mit Zitat antworten
Alt 26.01.2012, 13:06  
Benutzer
 
Registriert seit: 01.11.2010
Beiträge: 96
PHP-Kenntnisse:
Anfänger
Internetdepp ist in Verruf geraten
Standard

nee funzt jetzt...

so mit dem:

Code:
mysql_select_db(gripsle);
	$doppelte = mysql_query("SELECT id FROM t_slot WHERE id LIKE '$_SESSION[Slot]'");
	do
	{
	$Slot_id = md5( uniqid() ); 
		echo "nein keine doppelten<br/>";
		echo $Slot_id;
	}
	while(mysql_num_rows($doppelte)==0);
kann man es intelligenter machen??
Internetdepp ist offline   Mit Zitat antworten
Alt 26.01.2012, 13:08  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.631
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Zitat:
Zitat von Internetdepp Beitrag anzeigen
kann man es intelligenter machen??
Was willst du da mit der Schleife?

Wenn mysql_num_rows 0 zurückgibt läuft dein Script wieder endlos.

Außerdem, wenn du doppelte Einträge suchst ist eine Abfrage "> 1" korrekt.

0 - keine
1 - einer
> 1 - mehr als einer, "doppelte"
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Alt 26.01.2012, 13:15  
Benutzer
 
Registriert seit: 01.11.2010
Beiträge: 96
PHP-Kenntnisse:
Anfänger
Internetdepp ist in Verruf geraten
Standard

das mit dem >1 sollte ja nie vorkommen...deshalb die Schleife...

die Schleife soll überprüfen, ob die SlotId schon vorhanden ist, wenn nicht soll eine neue erzeugt werden, die soll auch überprüft werden, solange bis die neue wirklich nicht vorhanden ist...

aber es stimmt... jetzt läuft sich das script auch tot wenn die SlotId nicht vorhanden ist...

was tun? vorher irgendwas mit IF???
Internetdepp ist offline   Mit Zitat antworten
Alt 26.01.2012, 13:21  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.631
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Zitat:
Zitat von Internetdepp Beitrag anzeigen
was tun? vorher irgendwas mit IF???
Für sowas gibt es bei Datenbanken das Flag "auto increment".

Deine Schleife muss laufen wenn es die SlotId gibt, eine neue Id erzeugen, und dann natürlich die Ressource welche von mysql_num_rows überprüft wird mit einer neuen überschreiben.
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Alt 26.01.2012, 13:25  
Benutzer
 
Registriert seit: 01.11.2010
Beiträge: 96
PHP-Kenntnisse:
Anfänger
Internetdepp ist in Verruf geraten
Standard

das mit dem autoincrement habe ich auch schon überlegt...

aber das zählt ja von 1 nur hoch.... und irgendwann ist die Anzahl erschöpft...

ich kenn von Access, dass eine Zufallszahl als autoincrement eingetragen wird...aber bei mysql habe ich das nicht gefunden...

oder gibt es die möglichkeit da auch...
Internetdepp ist offline   Mit Zitat antworten
Alt 26.01.2012, 13:27  
Benutzer
 
Registriert seit: 01.11.2010
Beiträge: 96
PHP-Kenntnisse:
Anfänger
Internetdepp ist in Verruf geraten
Standard

so hab ich das probiert die 2 verschiedenen möglichkeiten...
Code:
$doppelte = mysql_query("SELECT id FROM t_slot WHERE id LIKE '$_SESSION[Slot]'");
	if(mysql_num_rows($doppelte)==0){ 
		$Slot_id = $_SESSION[Slot];
		echo "nein keine doppelten<br/>";
		echo $Slot_id;
		}
		else {	
			do
			{
			$Slot_id = md5( uniqid() ); 
			echo "nein keine doppelten<br/>";
			echo $Slot_id;
			}
			while(mysql_num_rows($doppelte)==0);
			}
oder ist da noch ein hacken drin...

ich glaube die unteren echo kann ich rausnehmen....grins
Internetdepp ist offline   Mit Zitat antworten
Alt 26.01.2012, 13:30  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.631
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Zitat:
Zitat von Internetdepp Beitrag anzeigen
aber das zählt ja von 1 nur hoch.... und irgendwann ist die Anzahl erschöpft...
Datentyp UNSIGNED BIGINT reicht bis 18446744073709551615. Das sind dir zu wenig IDs? In Worten: mehr als 18 TRILLIONEN...

Zitat:
Zitat von Internetdepp Beitrag anzeigen
so hab ich das probiert die 2 verschiedenen möglichkeiten...
Code:
$doppelte = mysql_query("SELECT id FROM t_slot WHERE id LIKE '$_SESSION[Slot]'");
	if(mysql_num_rows($doppelte)==0){ 
		$Slot_id = $_SESSION[Slot];
		echo "nein keine doppelten<br/>";
		echo $Slot_id;
		}
		else {	
			do
			{
			$Slot_id = md5( uniqid() ); 
			echo "nein keine doppelten<br/>";
			echo $Slot_id;
			}
			while(mysql_num_rows($doppelte)==0);
			}
oder ist da noch ein hacken drin...
Hör auf zu raten und denk mal nach.

Wenn 0 Zeilen im Result dann... Ausgabe: keine Doppelten
Ansonsten "Ausgabe keine doppelten solange 0 Zeilen im Result"...

Das kann nicht funktionieren. Was du machen musst habe ich dir auch bereits gesagt.
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Antwort


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
Suse Linux - Apache läuft, PHP nicht Server, Hosting und Workstations 8 17.05.2011 11:16
[Erledigt] Bild ausgeben solange das Script läuft favo PHP-Fortgeschrittene 6 17.09.2010 13:34
[Erledigt] AJAX interpretRequest läuft nur mit alert() Buschdieb JavaScript, Ajax und mehr 14 26.08.2009 14:04
Notiz-Script läuft in FF, aber nicht in IE perpicx PHP Tipps 2009 4 28.01.2009 13:23
script läuft nicht mehr seit server mit save mode on läuft wolfram PHP Tipps 2008 4 30.03.2008 16:29
script läuft nicht mehr seit server mit save mode on läuft wolfram PHP Tipps 2008 13 29.03.2008 21:10
SQL Abfrage läuft nach Providerwechseln nicht mehr optimal elconde Datenbanken 3 21.03.2007 23:42
script läuft und funktioniert gibt aber fehlermeldung aus? Promaetheus PHP Tipps 2006 5 12.09.2006 23:42
Php Skript läuft auf neuerer Version nicht PHP Tipps 2005-2 17 21.08.2005 18:18
PHP läuft online nicht richtig! PHP-Fortgeschrittene 4 17.08.2005 01:02
checken, ob ein cs-server läuft. necrom0rb PHP-Fortgeschrittene 39 20.07.2005 23:57
sql left join läuft auf testserver, aber nicht im i-net PHP Tipps 2005 7 13.05.2005 09:45
erkennen, ob mein server läuft? PHP Tipps 2005 4 13.01.2005 12:36
Apache läuft aber kein Php Programm läuft Server, Hosting und Workstations 1 08.07.2004 15:33
Die Schleife läuft eine Ehrenrunde zu viel bei feof() PHP Tipps 2004 1 13.06.2004 18:45


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:38 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