php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.04.2005, 19:05  
Erfahrener Benutzer
 
Registriert seit: 25.05.2004
Beiträge: 229
lindner
lindner eine Nachricht über ICQ schicken
Standard mysql_fetch_row(): komme nicht weiter

hallo leute..
wollte eigentlich ganz normal eine db auslesen, erst habe ich es so gemacht:

Code:
while ($myrow = mysql_fetch_row($result)) {
printf("%s",myrow[0]);
}
so.. ich habe nun einen beitrag löschen wollen, ohne probleme.
so nun wollte ich die db updaten.. der link sah dann so aus
Code:
xxx.php?action=update&row_id=x
er führt den link aus und nun wird die tabelle nicht weiter angezeigt, nur ein fehler:

mysql_fetch_row(): supplied argument is not a valid MySQL result resource

--------------------------------------
ok ich habe es anders probiert.. es sollte eine elegantere lösung sein (für meine verhältnisse) - hab es woanders abgeschaut und konnte noch nicht testen, ob es geht, denn ich bekam wieder den fehler:

mysql_fetch_row(): supplied argument is not a valid MySQL result resource

schon von vornherein, ohne anhang an der xxx.php

der code dazu sieht ungefähr so aus:
Code:
while ($row = mysql_fetch_row($res)) {

echo"<tr bgcolor='$color'>
            <td class='admin'><center>$row[0]</center></td>
            <</td>
            </tr>";}
das müsste doch funzen.. woher kommt der fehler. wo mache ich den fehler.. vielleicht finde ich hier die lösung.. unter gugel bekommt man bei der suche der fehlermeldung nur seiten, die die fehlermeldung haben

bitte um hilfe
grüße pat
lindner ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 27.04.2005, 19:13  
Gast
 
Beiträge: n/a
Standard

Die Suche hat 359 Ergebnisse ergeben.
Das bekommt man, wenn man mal die Suchfunktion mit supplied and argument benutzt. Wieso schaffst du das nicht?

Gruß
phpfan
 
Alt 27.04.2005, 19:15  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Warum liest Du Dir nicht einfach mal genau durch, was in der Fehlermeldung steht?
Du stopfst etwas in mysql_fetch_row() rein, was ihm nicht gefällt. Bei Dir ist das offensichtlich $result.
Jetzt kannst Du mal suchen, wo der Inhalt von $result herkommt. In der Zeile drüber wirst Du vermutlich $result = mysql_query(...); finden.

Also kümmer Dich mal um diesen Aufruf und nicht um mysql_fetch_row(). Wenn der Fehler dort auffällt, ist es schon zu spät.

Um rauszukriegen, was schief geht, solltest Du mysql_error() benutzen und vor allem mal drum kümmern, was mysql_query() zurück gibt.

Wenn Du danach immer noch ein Problem hast, dann her mit der Fehlermeldung und dem Code vor dem gezeigten Abschnitt.
Natürlich einschließlich Query-String, der den Fehler verursacht.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 27.04.2005, 19:27  
Erfahrener Benutzer
 
Registriert seit: 25.05.2004
Beiträge: 229
lindner
lindner eine Nachricht über ICQ schicken
Standard

das mit dem mysql_error hab ich schon gemacht.. denn meine abfrage bzw anfrage sieht so aus (fürs verändern)

PHP-Code:
<?php
if($action==update)
{
$row_id=($_GET['row_id']);
$sql sprintf("UPDATE `$tabelle` SET `auth` = '1' WHERE `row_id` = '$row_id'");
$result mysql_query($sql) OR die(mysql_error(). '
.$sql);
}
?>
da ist doch eindeutig der quelltext drin

UND fürs löschen sieht er so aus
PHP-Code:
<?php
if($action==delete)
{
$sql sprintf("DELETE FROM %s WHERE row_id = %s"$tabelle$_GET['row_id']);

$result mysql_query($sql) OR die(mysql_error(). '
.$sql);
?>
}
das löschen geht, das update nicht --- das versteh ich nicht.. ich rede dabei immer noch vom ersten quellcode, den ich zu beginn gepostet habe
nur bei update kommt die fehlermeldung

mit dem ersten quellcode geh ja das auslesen der db.. nur bei der zweiten nich
sorry.. kenn mich nicht gut aus und bin erst beim lernen.. das hört ihr sicher jeden tag.. aber ich kanns auch nicht ändern

grüße pat
lindner ist offline  
Alt 27.04.2005, 19:34  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

PHP-Code:
<?
if($action==update)
?>
Was soll denn das mal werden? Setz doch mal
PHP-Code:
<?
error_reporting 
(E_ALL);
?>
oben in das Script.
Kommt da eine Meldung über eine unbekannte Konstante, die eigentlich ein String werden sollte?

Du kommst nie in Deine if-Zweige rein.
Pack zur Kontrolle mal ein echo $sql rein.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 27.04.2005, 19:40  
Erfahrener Benutzer
 
Registriert seit: 25.05.2004
Beiträge: 229
lindner
lindner eine Nachricht über ICQ schicken
Standard

Notice: Undefined variable: res

ok.. ist mir jetzt klar, dass die variable nicht definiert ist. wie genau macht man das.. ic glaube mich an globals oder sowas zu erinnern.. bei vb vereinbart man die einfach.. wie geht das bei php?!
lindner ist offline  
Alt 27.04.2005, 19:41  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 1.476
DiBo33
Standard

Weder die Konstante update noch die Konstante delete ist definiert.

Schau dir mal beide Zuweisungen zur Variable $sql genauer an (resp. den Unterschied).
DiBo33 ist offline  
Alt 27.04.2005, 19:42  
Gast
 
Beiträge: n/a
Standard

Geht:
while ($myrow = mysql_fetch_row($result))
Geht nicht:
while ($row = mysql_fetch_row($res))

Wenn die Zeile mysql_query identisch geschrieben ist, sollte das wohl $result lauten, oder

Gruß
phpfan
 
Alt 27.04.2005, 19:43  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Du packst das Ergebnis von mysql_error() in $result, verwendest aber danach $res.
Zumindest im zweiten Schnippsel Deines ersten Postings.

update und delete dürften auch undefined sein.
Mach doch die Vergleiche mal mit Strings:
PHP-Code:
<?
if($action=='update')
?>

Edit:
Grmbl. zu laaaaangsaaaaaa......
Der_Gerhard ist offline  
Alt 27.04.2005, 19:51  
Erfahrener Benutzer
 
Registriert seit: 25.05.2004
Beiträge: 229
lindner
lindner eine Nachricht über ICQ schicken
Standard

also.. das mit dem res und result hab ich verstanden. ich habe jetzt res auch wieder result genannt un der fehler war weg.. ABER

ich habe das jetzt mit dem if($action=='update') gemacht und keine veränderung. es wird auch kein fehlercode durch error_reporting (E_ALL); angezeigt..

nur bei update kommt die fehlermeldung, nicht bei delete.. warum. wo ist der unterschied. die SQL anweisungen sind meiner meinung nach richtig

versteht ihr?! ich nämlich net

ps. sorry,war am testen
lindner ist offline  
 


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

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql_fetch_row leeren, mysql_fetch_row löschen

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