Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
wie geht das mit mysql_fetch_array... [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
wie geht das mit mysql_fetch_array...


 
Metallica
18-01-2002, 10:30 
 
Hi together!

ich will aus meiner db einen bestimmten wert auslesen und dann als variable in php verfügbar haben.
das muss irgendwie mit dem mysql_fetch_array gehen. ich kriegs aber nicht hin.

CODE:
$vergleich = "456";
$check = mysql_query("SELECT KOMBINATIONhr, ZAHLhr FROM tabelle WHERE KOMBINATIONhr='$vergleich'");
mysql_fetch_array($check)
//ab da weiß ich nicht mehr weiter => ich möchte den Wert ZAHLhr als variable $zahl in php zur verfügung haben


please help

 
hand
18-01-2002, 10:45 
 
$vergleich = "456";
$check = mysql_query("SELECT KOMBINATIONhr, ZAHLhr FROM tabelle WHERE KOMBINATIONhr='$vergleich'");
$var = mysql_fetch_array($check);
$zahl = $var["ZAHLhr"];

 
hand
18-01-2002, 10:47 
 
Kennst Du schon http://www.koehntopp.de/php
insbesondere
http://www.koehntopp.de/php/database_mysql.html
?

 
Metallica
18-01-2002, 11:01 
 
alles klar, hand.
hab's grad eingebaut und hab die site gleich in meine favoriten gesteckt. :)

eine sache fehlt allerdings noch.
wenn kein übereinstimmender Wert in der DB gefunden wird dann nehm ich mal an, dass $zahl leer ("") sein wird?? Oder gibt mysql dann eine fehlermeldung zurück??

erreichen will ich folgendes:
wenn ein vergleichswert gefunden wurde, geht's ganz normal im script weiter. => das paßt scho ma
wenn allerdings kein vergleichswert gefunden wurde, dann soll nicht weitergemacht werden, sondern meine badinput.htm aufgerufen werden.
geht das??

 
JoelH
18-01-2002, 11:40 
 
die Anzahl der gefunden Datensätze bekommst du durch

$anzahl = mysql_num_rows($check);

 
Metallica
18-01-2002, 11:45 
 
ok. und wenn sql nichts gefunden hat, dann ist $anzahl=0, oder wie??

wenn da so ist, dann könnte ich das ja mit 'ner if-abfrage lösen.
if ($anzahl==0){
//rufe badinput.htm auf
}else{
//mach ganz normal weiter
}

 
JoelH
18-01-2002, 11:49 
 
so sieht es aus.

 
hand
18-01-2002, 11:55 
 
http://www.koehntopp.de/php
insbesondere
http://www.koehntopp.de/php/database_mysql.html
:)

 
Metallica
18-01-2002, 12:06 
 
THXS ihr beiden.
werd's am nachmittag checken.

@hand
ob es null zurückliefert oder nicht ist in der doku definitiv nicht drinnengestanden.
ich kann es leider nicht testen weil ich auswärts bin.
=> sorry wenn ich dann manchmal so genau nachfrage aber ich versuche solche dinge im vorfeld zu klären.

 
schmalle
18-01-2002, 12:07 
 
Original geschrieben von Metallica
=> sorry wenn ich dann manchmal so genau nachfrage.

wenn das nicht wäre, hätten wir alle nix mehr zu tun :D

 
Metallica
18-01-2002, 13:16 
 
ahhh, wieso geht das nicht:

$anzahl = mysql_num_rows($check);
if ($anzahl==0){
header( "Location: http://www.mydomain.de/badinput.htm ");
}

mit header muss das laut referenz funtzen.

 
schmalle
18-01-2002, 13:20 
 
bekommst du ne fehlermeldung, oder passiert einfach nix? im zweiten falle sind die header funktionen deiner php-installation deaktiviert.

 
Metallica
18-01-2002, 13:23 
 
Warning: Cannot add header information - headers already sent by (output started at /u/aaa/xxx/yyy/myscript.php4:17) in /u/aaa/xxx/yyy/myscript.php4 on line 24

 
schmalle
18-01-2002, 13:27 
 
header funktionen gehen nur, wenn zuvor noch nichts ausgegeben wurde. sprich keine html-ausgabe, kein echo usw. ...

wenn du umbedingt was schreiben möchtest, bevor es weiter geht, mach es mit meta-refresh

 
JoelH
18-01-2002, 13:30 
 
es dürfen keinerlei HTML Codes verwendet werden vor header.

 
Metallica
18-01-2002, 13:32 
 
ahhhh, jetzt funtzs :)
hab die test-echos rausgegeben.
ich dachte es darf nur kein html sein.
das mit echo wußte ich nicht.

THXS

 
schmalle
18-01-2002, 13:34 
 
dazu muss ich jetzt nichts sagen oder? :D
wie lange progst du schon php? :p

 
Metallica
18-01-2002, 13:40 
 
ahhh, es läuft noch nicht perfekt.

nach der If kommt noch ein db-eintrag den php nicht mehr durchführen sollte. ich dachte, dass php das script abbricht wenn es die badinput.htm aufruft.
gibt's da irgendwas in der art wie GOTO sprich einen sprungbefehl??

wenn ich alles in 'ne große if-else reinschreibe, ist das doch auch nicht optimal, oder??

$anzahl = mysql_num_rows($check);
if ($anzahl==0){
header( "Location: http://www.mydomain.de/badinput.htm ");
}

//db-eintrag.....

 
schmalle
18-01-2002, 13:46 
 
goto gibt es nicht.

einfach if(das is so wie ich nicht will) { header() usw. }
else { db_eintrag(); }

und gut ist. ist doch egal wie gross if und else sind.

 
JoelH
18-01-2002, 13:52 
 
also ich weiss auch nicht was du immer hast Metallica, machst Mäuse zu Elefanten und dann hast du wieder grandiosgeniale Lichtblicke :)

@schmalle
*malrechtgeb*

 
schmalle
18-01-2002, 13:55 
 
Original geschrieben von JoelH
@schmalle
*malrechtgeb*
das ich das noch erleben darf ...

 
Metallica
18-01-2002, 14:14 
 
entschuldigt, aber ich hab immer soviel ideen gleichzeitig im kopf dass ich mich schon mal überschlage :)
hab jetzt einfach alles in eine große if/else gepackt und es funkt perfectly wobei die else den header-aufruf beinhaltet weil die Chance 1:1000 ist, dass er da reinkommt. aber berücksichtigen muss ich's halt trotzdem. es kann sich ja jemand vertippen.
:):):)

 
hand
18-01-2002, 14:24 
 
$anzahl = mysql_num_rows($check);
if ($anzahl==0){
header( "Location: http://www.mydomain.de/badinput.htm ");
exit();
}

 
Metallica
18-01-2002, 14:27 
 
na super. hab doch gewußt,dass es anders auch geht.
werd das exit vorsichtshalber mal als kommentar reinpacken.
:) :)

 
JoelH
18-01-2002, 14:33 
 
du hast nicht gesagt dass es danach noch weitergeht.
Kannst auch mit die(); aussteigen :)

 
Metallica
18-01-2002, 14:36 
 
eine allerletzte sache noch diesbezüglich:

wenn eine übereinstimmung gefunden wurde, dann soll noch die Zeile aus der tabelle gelöscht werden.

CODE:
$vergleich = "456";
$check = mysql_query("SELECT KOMBINATIONhr, ZAHLhr FROM tabelle WHERE KOMBINATIONhr='$vergleich'");
$var = mysql_fetch_array($check);
$zahl = $var["ZAHLhr"];

$anzahl = mysql_num_rows($check);
if ($anzahl==1){
$clear = mysql_query("DELETE FROM tabelle WHERE KOMBINATIONhr='$vergleich'");
//paßt das so?? jetzt ja
}


[Editiert von schmalle am 18-01-2002 um 14:41]

 
hand
18-01-2002, 14:43 
 
Und was ist wenn Dir Deine Datenbank zufällig zwei anstatt einen Record liefert?

 
schmalle
18-01-2002, 14:47 
 
@hand musstest du ihn auf diese möglichkeit aufmerksam machen? :D

 
hand
18-01-2002, 14:49 
 
Das mit
$var = mysql_fetch_assoc($check);
wollte ich nicht anbringen und da
isses(passiert);

 
Metallica
18-01-2002, 14:54 
 
hmmm, deswegen habe ich den delete-befehl ja auch in die if reingeschrieben.
nur wenn $anzahl==1 ist soll er diesen einen DS löschen.
bei jeden anderen wert den anzahl annimmt lädt er die badinput.htm

@schmalle
so blöde bin ich auch wieder nicht als das ich das nicht wüßte!!!

 
schmalle
18-01-2002, 14:56 
 
Original geschrieben von Metallica
@schmalle
so blöde bin ich auch wieder nicht als das ich das nicht wüßte!!!

man achte auf meine signatur :D

 
hand
18-01-2002, 14:58 
 
Dann hast Du sozusagen keinen Eintrag oder mehrere, auf keinen Fall einen Eintrag, weil dann hast Du wieder keinen.

isses(so);?

 
schmalle
18-01-2002, 15:02 
 
Original geschrieben von hand
Dann hast Du sozusagen keinen Eintrag oder mehrere, auf keinen Fall einen Eintrag, weil dann hast Du wieder keinen.

isses(so);?

versteht jemand, was @hand uns damit sagen will? also ich nicht ....

 
Metallica
18-01-2002, 15:03 
 
jajaja, schmalle. hab deine neue signatur schon gestern bewundert :)

brauch ich zu dem delete-befehl auch wieder so 'ne query dings bums wie:
$blub = mysql_query($clear);
??
oder ist das bei delete (so wie bei update) nicht notwendig??

@hand
??????????????????
=> er tut's nur wenn er eine gleiche kombination gefunden hat. isses weniger oder mehr als eine, dann kommt er in die badinput.htm

 
schmalle
18-01-2002, 15:05 
 
Original geschrieben von Metallica
jajaja, schmalle. hab deine neue signatur schon gestern bewundert :)

du machst mir sorgen .... die signatur habe ich erst heute morgen geändert ....

 
Metallica
18-01-2002, 15:07 
 
ja. hab ich eh gemeint :)

da wär noch was:
brauch ich zu dem delete-befehl auch wieder so 'ne query dings bums wie:
$blub = mysql_query($clear);
??
oder ist das bei delete (so wie bei update) nicht notwendig??

 
schmalle
18-01-2002, 15:10 
 
hä?

$clear = mysql_query("DELETE FROM tabelle WHERE KOMBINATIONhr='$vergleich'");

das ist doch ein mysql_query!?! aber nenne ihn besser 'blub' ... zum einen kommst du der allegemeinen forum-sprache näher, und zum anderen ist clear nicht gut gewählt meine ich

 
Metallica
18-01-2002, 15:16 
 
hab's grad getestet.
paßt so.

aber blub verwende ich weiter unten im script noch ein paar mal.
ich nenne den variablennamen jetzt $schmalle => den verwende ich noch nirgends :)

THXS

P.S.: Ich glaub ich bin Rekordhalter was die länge meiner Threads anbelangt:):):)

 
hand
18-01-2002, 15:29 
 
@schmalle

Original geschrieben von schmalle
[QUOTE]Original geschrieben von hand
versteht jemand, was @hand uns damit sagen will? also ich nicht ....

if ($anzahl==1){
$clear = mysql_query("DELETE FROM tabelle WHERE KOMBINATIONhr='$vergleich'");
}

Wenn Datenbank keinen Record liefert wird nix gelöscht.
Wenn Datenbank 2 Records liefert wird nix gelöscht.
Wenn Datenbank 3 Records liefert wird nix gelöscht.
Wenn Datenbank n Records liefert wird nix gelöscht.
Wenn die Datenbank 1 Record liefert wird dieser gelöscht.
Dann gibts wieder keinen Record.

Das bedeutet für mich eben:
Dann hast Du sozusagen keinen Eintrag oder mehrere, auf keinen Fall einen Eintrag, weil dann hast Du wieder keinen.

geschmallt?

 
schmalle
18-01-2002, 15:33 
 
ihr macht mich feddich :D

ich wusste schon was du sagen wolltest, aber der satz ist sowas von seltsam zusammengebaut, dass ich einfach mal nachhaken musste. that´s my job :D

 
hand
18-01-2002, 15:45 
 
Das sagst Du jetzt :)

 
hand
18-01-2002, 15:46 
 
Original geschrieben von Metallica
P.S.: Ich glaub ich bin Rekordhalter was die länge meiner Threads anbelangt:):):)


Da lernen sich eben die Leute kennen

 
JoelH
18-01-2002, 15:56 
 
noe, längsteer Thread ist der von Larsidotnet, dem muss ich jetzt an WE wirklich mal sein Script fertigmachen.
http://www.php-resource.de/forum/showthread.php?threadid=3241
schon über 1000 Hits :D

 
hand
18-01-2002, 16:13 
 
1000 Hits ist aber wirklich lang :)

 
Metallica
18-01-2002, 16:27 
 
boahhh, sensationell.
12 seiten lang :) => staun staun!!

nah da brauch ich mir ja keine sorgen mit meinen 3-5 machen :)

falls es noch jemand interessiert => alles workt jetzt perfectly :)

THXS all!!


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