php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
fehler


 
hera
28-03-2005, 18:00 
 
dieser schnipsel bringt folgende fehlermeldung:
Warning: Wrong parameter count for mysql_db_query() in /pfad.php on line 12
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /pfad.php on line 13

$res=mysql_db_query("select * from ezoo"); // #12
$num=mysql_num_rows($res);
for($i=0;$i<$num;$i++)
{
$sid=mysql_result($res,$i,"sid");
mysql_db_query("insert user_info values ($sid, '$txt')");
}

woran liegt das? ich möchte aus der tabelle ezoo alle $sid auslesen und dann in die tabelle user_info mit text wieder rein. (pro sid = 1 x text in einem abwasch.)
danke

 
jahlives
28-03-2005, 18:12 
 
Schau mal bei mysql.org (http://dev.mysql.com/doc/mysql/en/insert.html)
Du musst in deiner MySql-Anweisung schon sagen welche Spalten mit den Values belegt werden sollen.
Gruss

tobi

 
hera
28-03-2005, 18:25 
 
ja schon klar. aber da kommt der fehler nicht her.
hier geändert, gleicher fehler:

$res=mysql_db_query("select * from ezoo");
$num=mysql_num_rows($res);
for($i=0;$i<$num;$i++)
{
$sid=mysql_result($res,$i,"sid");
mysql_db_query("insert into user_info ('sid','txt') values ($sid, $txt)");
}

die sid kommt aus einer anderen tabelle. der txt aus einem formular.

 
Jacky
28-03-2005, 18:37 
 
Mach mal aus mysql_db_query --> mysql_query
Warum kann ich gerade auch nicht genau sagen. Ich hab auch an so ähnliches Script auch in Verbindung mit mysql_num_rows. Dort hab ich zum test nach dem lesen des Threads mysql_db_query eingefügt, dann kommen genau die gleichen fehler, wenn ich das _db wieder rausnehme, dann gehts.

 
hera
28-03-2005, 18:43 
 
sieht schon mal wesentlich freundlicher aus!
hier die ausgabe jetzt:
You have an error in your SQL syntax near ''sid','txt') values (630dc4bde88843c3fe537abd1007cc1e, test-text 0)' at line 1

 
jahlives
28-03-2005, 18:43 
 
mysql_db_query("insert into user_info VALUES(sid='$sid',txt='$txt')");

Falls das nicht weiterhilft, werde ich heute abend mal zu Hause schauen.
Gruss

tobi

 
hera
28-03-2005, 18:49 
 
danke für die mühe. so siehts jetzt aus!
Column count doesn't match value count at row 1

 
jahlives
28-03-2005, 18:52 
 
Und deine Spalten heissen wirklich sid und txt ??? Und sind auch in dieser Reihenfolge ???

 
Jacky
28-03-2005, 19:06 
 
Ich habe gerade folgendes gesehen:
$result=mysql_db_query ("testdb","select * from kueche");
Kann es sein, dass es an der DB liegt, bei mysql_db_query muss noch die db mit angeben werden und bei mysql_query kann man diese weglassen? Du könntest es ja mal probieren mit _db und die DB angben wie oben oder du lässt das _db weg und lässt den rest so und probierst es dann nochmal ob es geht. Nachzulesen auch im PHP Manual.
http://de.php.net/mysql_db_query
http://de.php.net/manual/de/function.mysql-query.php
Ansosnten würd ich da mal schauen:
Und deine Spalten heissen wirklich sid und txt ??? Und sind auch in dieser Reihenfolge ???

 
hera
28-03-2005, 19:34 
 
es wird langsam. ja die spalten heissen so und die reihenfolge passt auch.
mit dem absenden des formulars wird nun auch in die datenbank eingetragen. jedoch stehen bei txt und sid jeweils '0' drin. es werden aber schonmal 5 einträge erzeugt! genausoviel wie datensätze in der tabelle ezoo vorhanden sind. aber wo bleiben die werte? echo mysql_error();
und echo $query; bringen keine fehlermeldungen bzw. ausgaben.
vielen dank

 
PhilW
28-03-2005, 20:10 
 
Poste mal das gesammte Script (bzw, das nötige) vl liegt der Fehler ja auch woanders.
Nehm ich jedenfalls an wenn du meinst das bei sid und txt nur ne null drinnen steht!

 
hera
28-03-2005, 21:03 
 
also hier das formular:
<form action="eintragsenden.php" method="post" enctype="text/plain">
<textarea cols="38" rows="5" name="txt">test-text 0</textarea>
<input type="submit" value="Absenden">
</form>
jetzt die abfrage:

$res=mysql_query("select * from ezoo");
$num=mysql_num_rows($res);
for($i=0;$i<$num;$i++)
{
$sid=mysql_result($res,$i,"sid");
mysql_query("INSERT INTO user_info ('sid','txt') VALUES ($sid, $txt)");
//mysql_query("INSERT INTO user_info VALUES(sid='$sid',txt='$txt')");
}


und nun noch das ergebnis:
You have an error in your SQL syntax near ''sid','txt') VALUES (630dc4bde88843c3fe537abd1007cc1e, test-text 0)' at line 1

die ausdokumentierte zeile trägt 0 in die tabellenfelder ein
danke

 
PhilW
28-03-2005, 21:41 
 
$res=mysql_query("select * from ezoo");
while($sid=mysql_fetch_array($res)){
mysql_query("INSERT INTO user_info ('sid','txt') VALUES ($sid['sid'], $_POST['txt'])");
//mysql_query("INSERT INTO user_info VALUES(sid='$sid['sid']',txt='$txt')");
}


teste das mal (hab nicht so viel zeit und deswegen nicht getestet, falls es etwas falsch ist: sorry :D )

Phil

 
hera
28-03-2005, 21:52 
 
bingt leider auch nicht das gewünschte ergebnis. trotzdem danke!

 
hera
29-03-2005, 09:01 
 
ob sich jemand das script nochmal ansehen könnte. komme hier wirklich nicht weiter!

 
DrNorton
29-03-2005, 09:10 
 
der Fehler sind die Hochkommas bei den Spaltennamen ... dafür würde ich aber den Parameter txt mit Hochkommas escapen ... wenn da wirklich mal Text rein soll !


mysql_query("INSERT INTO user_info (sid,txt) VALUES ($sid['sid'], '$_POST['txt']')");


so sollte es gehen ...

 
hera
29-03-2005, 09:15 
 
hatte ich schon getestet, mit diesem ergebnis:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /pfad.php on line 16

grüße

 
DrNorton
29-03-2005, 09:18 
 
ja logisch ... sorry mein Fehler ... du benutzt die Hochkommas ja auch für die Indexe der Arrays :D


mysql_query("INSERT INTO user_info (sid,txt) VALUES (".$sid['sid'].",'".$_POST['txt']."')");


jetzt aba ...

 
hera
29-03-2005, 09:31 
 
leider nein! der eintrag in die db erfolgt fehlerfrei (ohne meldung von error & query).aber in der tabelle erscheinen statt der sid die nummern: 1,5,3,6 ! ???
txt wird garnicht eingetragen! verzweifel...

 
hera
29-03-2005, 18:56 
 
habe leider immer noch kein brauchbares ergebnis

$res=mysql_query("select sid from ezoo");
$num=mysql_num_rows($res);

for($i=0;$i<=($num - 1);$i++)
{
$sid=mysql_result($res,$i,"sid");
mysql_query("INSERT INTO user_info (sid) VALUES (". $sid .")");
echo $i . ": " . mysql_error() . "<br />";
}

0: Unknown column '16da50a507f2a68c3fa578cdaaf4f119' in 'field list'
1: Unknown column '54668439ff49425908b55fb31089a29a' in 'field list'
2: Unknown column '30c1fce903e0a34e0c1da90bd25ffb23' in 'field list'
3: Unknown column 'bb44e5da7faacfe218fe59bca34d0f68' in 'field list'
4: Unknown column '630dc4bde88843c3fe537abd1007cc1e' in 'field list'

Die ezoo.sid werden korrekt genannt bei mysql_error(), aber es erfolgt kein eintrag in die datenbank.

nehm ich die "- 1" raus erscheint folgendes
0: Unknown column '16da50a507f2a68c3fa578cdaaf4f119' in 'field list'
1: Unknown column '54668439ff49425908b55fb31089a29a' in 'field list'
2: Unknown column '30c1fce903e0a34e0c1da90bd25ffb23' in 'field list'
3: Unknown column 'bb44e5da7faacfe218fe59bca34d0f68' in 'field list'
4: Unknown column '630dc4bde88843c3fe537abd1007cc1e' in 'field list'

Warning: mysql_result(): Unable to jump to row 5 on MySQL result index 3 in /....php on line 17
5: Column count doesn't match value count at row 1

 
PhilW
29-03-2005, 19:24 
 
ich hab auch öfters mit mysql_result... deswegen benutz ich meisten mysql_fetch_array!

probier das einmal (hab ' in ` umgeschrieben... normal sollten nur bei werten ' genutzt werden, und bei Namen `...)


$res=mysql_query("select * from ezoo");
while($sid=mysql_fetch_array($res)){
mysql_query("INSERT INTO user_info (`sid`,`txt`) VALUES ('".$sid['sid']."', '".$_POST['txt'])."');");
}


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