Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Layoutprobleme? - Styleswitcher!

Antwort
 
Themen-Optionen
Alt 10.04.2008, 19:47 Nach oben    #1
richy
Benutzer
 
Registriert seit: 26.03.2008
Ort: paderborn
Beiträge: 43
Standard problem mit einer while-schleife

hi! ich habe hier ein problem mit einer while-schleife:

PHP-Code:

$sql 
blah.....

$result mysql_query($sql) OR die(mysql_error());
echo 
mysql_num_rows($result);

    while (
$line mysql_fetch_assoc($result)) {
    
  
    
$alter $time $date;

        if (
$alter $max_alter) {
        
               
        
$sql "DELETE FROM fights WHERE fightid = $fightid";
        
$result mysql_query($sql) OR die(mysql_error());
        
                
        }
    
    } 
die query funktionert und selektiert alle datensaetze. es geht darum datensaetze zu loeschen, die ein gewisses alter ueberschritten haben. ich habe mal zwei datensaetze angelegt. einer davon ist zu alt und soll geloescht werden. das script loescht auch diesen datensatz. allerdings kommt dann die fehlermeldung:

Zitat:
mysql_fetch_assoc( supplied argument is not a valid MySQL result resource...
warum?

rufe ich dann das skript nochmal auf und es sind alle zu alten datensaetze geloescht kommt keine fehlermeldung.
__________________
gruss,
richy
richy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.04.2008, 20:24 Nach oben    #2
Artemis
Jonas
 
Benutzerbild von Artemis
 
Registriert seit: 03.06.2006
Beiträge: 222
Standard

Zitat:
$result = mysql_query($sql) OR die(mysql_error());
echo mysql_num_rows($result);

while ($line = mysql_fetch_assoc($result)) {


$alter = $time - $date;

if ($alter > $max_alter) {


$sql = "DELETE FROM fights WHERE fightid = $fightid";
$result = mysql_query($sql) OR die(mysql_error());


}

}
Erst rufst du den Query ab, mit dem du anscheinend, alle Datensätze abrufst. Das Ergebnis weist du $result zu. Dann holst du dir immer einen Datensatz.

Wenn dann ein Ergebnis gelöscht werden soll, weist du der Variable $result einen neuen Wert zu (letzte Markierung). Da ein Query, der was löscht nichts zurückgibt, ist $result keine MySQL-Resource mehr und beim nächsten Abrufen des nächsten Datensatzes gibts ein Fehler.

BTW: Die Aufgabe kann man auch nur mit einem MySQL-Query machen, wenn ich dich richtig verstanden hab.
__________________
Applikations-Programmierung:
BlitzMax, BlitzPlus

Webentwicklung:
PHP, (X)HTML, CSS, JavaScript, MySQL


Artemis ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.04.2008, 20:40 Nach oben    #3
richy
Benutzer
 
Registriert seit: 26.03.2008
Ort: paderborn
Beiträge: 43
Standard

jaaa ich hab $result einmal umbenannt und jetzt funzt es!

ich will alle datensaetze, die ein bestimmtes alter ueberschritten haben, loeschen. das geht in nur einem query?! wie?
__________________
gruss,
richy
richy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.04.2008, 21:48 Nach oben    #4
Jann Hendrik
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 1.539
Standard

Ob das in einem query geht oder nicht hängt davon ab, wie deine DB aufgebaut ist.
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

die aktuelle Umfrage: Wo kauft ihr eure Literatur?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.04.2008, 09:27 Nach oben    #5
mepeisen
Martin Eisengardt
 
Registriert seit: 30.03.2006
Ort: Pfinztal
Beiträge: 350
Standard

Genauer: Um das zu beurteilen wäre dein "bla..." interessant aus der ersten Zeile. Als Hinweis: Du kannst im Delete in der Where-Bedingung auch rechnen...
__________________
Open Sourcing the Online Gaming Universe
PHP/SQL/Java/C++/Assembler.
Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html
mepeisen ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.04.2008, 09:27 Nach oben    #6
richy
Benutzer
 
Registriert seit: 26.03.2008
Ort: paderborn
Beiträge: 43
Standard

danke! werde diesem hinweis nachgehen....
__________________
gruss,
richy
richy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

« Datensatz nur löschen, wenn der letzte Zeiger gelöscht wird | query frage »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

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 anzufügen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mysql_fetch_assoc und while Problem Eyüp PHP-Programmierung 8 19.03.2008 01:36
Problem bei Verarbeitung von Templates (Eigene Klassen) dago PHP-Programmierung 21 31.08.2006 16:02
Wie kann ich eine Schleife in einem Template ausleses? la-finest PHP-Programmierung 6 28.07.2006 12:41
OSX + Eclipse 3.1 Problem bacarni Eclipse 3 29.07.2005 21:19
while schleife schlafen legen aber im applet weiter arbeiten können mr.no Desktop-Applikationen und Grafik 5 12.03.2005 01:02


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

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.6.7, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44