Arrays aus Datenbank ohne While?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anweisung
beitrag
date
daten
fehler
fetten
formen
gruppen
hobby
insert
klappe
parameter
result
schleifen
schreibe
set
single
update
variable
wohnort
-
Hi.
Wenn ich aus einer Datenbank alles raushole (*), und es dann OHNE eine while Schleife in einen Array verwandeln will, was muss ich machen?
Ich wei? das es geht, ich wei? nur nicht mehr wie. Gegoogelt hab ich auch schon...
W?re nett wenn mir jemand helfen k?nnte.
Danke im Voraus! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
weis nich wozu du sowas brauchst...
hab das bei selfphp gefunden, is zwar nich mit while, aber mit ner andern schleife...
<?PHP /* Datenbankserver - In der Regel die IP */ $db_server = "localhost"; /* Datenbankname */ $db_name = "selfphp"; /* Datenbankuser */ $db_user = "root"; /* Datenbankpasswort */ $db_passwort = "mega"; /* Erstellt Connect zu Datenbank her */ $db = @MYSQL_CONNECT($db_server,$db_user,$db_passwort); $db_select = @MYSQL_SELECT_DB($db_name); $result = mysql_query("SELECT * FROM selfphp_funktionen"); for($x=0;$x<mysql_num_rows($result);$x++) { $str_1 = mysql_result($result,$x, "selfphp_funktionen.id"); echo "id: $str_1 <br>"; $str_2 = mysql_result($result,$x,1); echo "gruppe: $str_2 <br><br>"; }?>
Quelle: Selfphp (keine funktionsgarantie)
ich selbst w?sste auch nich, was es ohne while noch geben soll, wenn du alles (*) ausgeben willst...
mfg -
adrians schrieb:
wenn ich nur schreibe (nach dem query):
$result = mysql_fetch_array($sql);
Gibts nen Fehler aus.
Das m?sste, meiner Ansich nach, aber funktioneren!
Ausser das(der?) Query ist fehlerhaft und/oder nicht abgesandt worden.
Zeig uns bitte den Code ... -
Der Query funktioniert, und ich habe gedacht es w?rde auch so klappen... tuts aber net...*frust* teste ichs einfahc nomma...
edit: Ich packs net..... *frusted*
Hier der Code. Sinnd er Sache ist es das man in die Inputs (Sp?ter mit Beschreibung und auch Textareas usw) Daten Eintr?gt und diese dann in die DB gespeichert weren. Wenn ein Wert in dem Arrayfeld ist, dann soll der Wert angezeigt werden. Ansonsten der Standart.
Aber momentan gibts gar keine value aus... o.o"
Hier der Code:
<?php session_start(); include("../dbconnect.php"); if ($_SESSION['start'] == true) { //Daten aus der DB holen $name = $_SESSION['name']; $daten_1 = "SELECT * FROM `profil` WHERE `name` = '".$name."'" OR die(mysql_error()); $daten2 = mysql_query($daten_1) OR die(mysql_error()); $date = mysql_fetch_array($daten2); //Formularteil echo "Willkommen ", $_SESSION['name']; echo " <br> <br> Bitte gebe die Daten ein die du preisgeben m?chtest:<br><br> <form method=\"post\"> Wohnort und Stra?e:<br><br>"; if ($daten['home'] != "Stra?enname") { echo "<input name=\"home\" value=\"", $daten['home'], "\"><br>"; } else { echo "<input name=\"home\" value=\"Stra?enname\">"; } //Next if ($daten['plz'] != "PLZ") { echo "<input name=\"plz\" value=\"", $daten['plz'], "\"><br>"; } else { echo "<input name=\"plz\" value=\"PLZ\"><br>"; } //Next Kind echo "Hobbies:<br><br>"; //Next if ($daten['hobby'] != "Hobbies") { echo "<input name=\"hobby\" value=\"", $daten['hobby'], "\"><br>"; } else { echo "<input name=\"hobby\" value=\"hobbies\"><br>"; } //Next Kind echo "?ber dich:<br><br>"; if ($daten['about'] != "Erz?hl was ?ber dich!") { echo "<input name=\"about\" value=\"", $daten['about'], "\"><br>"; } else { echo "<input name=\"about\" value=\"Erz?hl was ?ber dich!\"><br>"; } //Next Kind if ($daten['single'] != "Wie stehts mit der Liebe?") { echo "<input name=\"single\" value=\"", $daten['single'], "\"><br>"; } else { echo "<input name=\"single\" value=\"single\"><br>"; } echo "<input type=\"submit\" name=\"send\"><br><br><br> </form> "; if (isset($send)) { if ($daten['home'] != "") { echo "Eintr?ge werden aktualisiert!"; $query = "UPDATE `profil` SET home, plz, street, hobby, about, single = '$home', '$plz', '$street', '$hobby', '$about', '$single' WHERE `name` = '".$name."'" OR die(mysql_error()); $result = mysql_query($query) OR die(mysql_error()); } else { echo "Eintr?ge werden gemacht!"; $query = "INSERT INTO `profil` (name, home, plz, street, hobby, about, single) VALUES ('$name', '$home', '$plz', '$street', '$hobby', '$about', '$single')" OR die(mysql_error()); $result = mysql_query($query) OR die(mysql_error()); } } } else { echo "Keine g?ltige Session, bitte loggen sie sich ein!"; } ?>
Viel pa?, das ist ein wirrer und sehr unsauberer code. Das ist mir Klar.....
Beitrag ge?ndert am 16.09.2005 19:30 von adrians -
du, aber den code hast du nicht 1:1 so in deinem script, oder?
denm:
<form method="post">
w?rde ersteinmal unter php ein fehler ausgeben, da in php die "" weggelassen werden m?ssen... es sein denn, du hast den code uns nur auszugsweise aufgelistet, und zwischendurch immer zu html gewechselt, aber sieht nich so aus, da du das ja alles in einem
zu stehen hast...echo ""
-
$query = "UPDATE `profil` SET home, plz, street, hobby, about, single = '$home', '$plz', '$street', '$hobby', '$about', '$single' WHERE `name` = '".$name."'" OR die(mysql_error());
Dieses Query ist mit Sicherheit falsch.
Denn wenn mehrere SET-Parameter ?bergeben werden sollen, schreibt man das in dieser Form:
$query = "UPDATE `profil` SET home = '$home',
plz = '$plz',
street = '$street',
hobby = '$hobby',
about = '$about',
single = '$single' WHERE `name` = '".$name."'" OR die(mysql_error());
Des weiteren bin ich mit dem "OR die(mysql_error());" an dieser Stelle nicht zufrieden.
Denn der Befehl nach OR wird nur dann ausgef?hrt, wenn die Variable nicht gespeichert werden konnte.
-
Hmm, das mit dem Update wusste ich gar net, und das die() hab ich danur hingemacht weil es nicht geklappt hat, normalerweise mach ich das da net.Mache ich eigentlich nur bei mysql_query().
Hmm, dann werde ich jetzt mal ein wenig ummodeln....
edit:
?brigens: Im code sind bei Method="post" die \ die werden hier aber irgendwie net angezeigt!
Und... ?hm, es aktualisiert nicht, was wahrscheinlich an der if am anfang liegt, aber es zeigt auch keine Values an. Das ist sch***e!
K?nnte mir da wer helfen, bitte?
Beitrag ge?ndert am 17.09.2005 12:07 von adrians -
hm....
?brigens: Im code sind bei Method="post" die die werden hier aber irgendwie net angezeigt
interpretiere ich das falsch, oder fehlen in deinen s?tzen ?fters mal worte? weil manche s?tze muss man sich ja zusammendenken....
ich meinte dabei, das diese anf?hrungsstriche bei php ?berfl?ssig sind, wenn nicht sogar ein fehler, bei html macht man das so, mit den anf?hrungsstrichen, aber bei php nicht. und auch nicht nur bei ->method="post"<-
, sondern ?beralle wo du ->="..." hast<-... w?rde ich sagen....aber ich will dich nich durcheinander bringen...
und: das er das nicht aktualisiert, liegt wohl an dem was disc geschrieben hat, das der update query falsch ist...!!!
-
Das habe ich ja ge?ndert, nein, die If ist falsch. Es tr?gt immer wieder neu ein, es kommt gar nicht dazu Update zu benutzen!
-
//Formularteil
echo "Willkommen ", $_SESSION['name'];
echo "
<br>
<br>
Bitte gebe die Daten ein die du preisgeben m?chtest:<br><br>
<form method="post">
Wohnort und Stra?e:<br><br>";
Ist ebefalls falsch, da ALLE Anf?hrungszeichen, welche von echo/print/printf ausgegeben werden sollen, escaped werden m?ssen.
Ausnahmen stellt das einleitende, sowie das endende Anf?hrungszeichen dar.
Probleml?sung zu Deinem Fall (?nderungen sind fett markiert):
//Formularteil
echo "Willkommen ". $_SESSION['name'];
echo "
<br>
<br>
Bitte gebe die Daten ein die du preisgeben m?chtest:<br><br>
<form method=\"post\">
Wohnort und Stra?e:<br><br>";
Alternativ dazu kannst Du die Zeichenfolge mit Hochkommata umklammer.
Somit wird es Dir erm?glicht, Anf?hrungszeichen nicht zu escapen.
Beispiel:
//Formularteil
echo 'Willkommen 'b].[/b] $_SESSION['name'];
echo '
<br>
<br>
Bitte gebe die Daten ein die du preisgeben m?chtest:<br><br>
<form method="post">
Wohnort und Stra?e:<br><br>'; -
if ($daten['home'] != "") { echo "Eintr?ge werden aktualisiert!"; // UPDATE DER EINTR?GE } else { echo "Eintr?ge werden gemacht!"; // NEUEUNTRAGUNG }
warum da if ($daten['home'] != "") ?
is der daten nicht der array, der aus der db ausliest? was hat der damit zu tun?
irgendwie verstehe ich dein script nicht wirklich, sorry.... aber jeder macht es ja anders...
-
Ich sag doch, die if is falsch, aber da is mir ncihts anderes eingeflalen, deshlab hab ich das gemacht!^^"
UND ICH HABE ALLE ESCAPED!!! SONST W?RDE ICH DOCH SAEGEN DAS ES EINEN FEHLER AUSGIBT!!!!
ICH HAB TAUSENMAL GESAGT DAS LIMA DIE \ HALT NET ANZEIGT-.-
Mann, das regt mich schon wieder auf.
Und ich frage mich warum das Ding die Values nicht ausgibt und wie die IF hei?en sollte die unter Update und INSERT entscheidet, das ist ALLES! -
alles klar, meinst du, wenn du ALLES GRO? SCHREIBST versteht man dich besser? ich muss mich hier nicht indirekt anpflaumen lassen, sorry...
-
adrians schrieb:
Das habe ich ja ge?ndert, nein, die If ist falsch. Es tr?gt immer wieder neu ein, es kommt gar nicht dazu Update zu benutzen!
Das ist vollkommen logisch.
Denn:
Du hast nirgendwo in Deinem Quellcode die Variable namens "$daten" definiert.
Folglich wertet PHP folgende if-Anweisung als "false":
if ($daten['home'] != "")
Da, wie schon gesagt, $daten NICHT deklariert, geschweige denn, vorhanden ist.
Somit wird immer der else-Teil der if-Anweisung ausgef?hrt.
-
Mir f?llt gerade auf das da tats?chlich ein Schreibfehler drinne ist^^
*date zu daten ?nder*
edit: Ahhhh! Jetz klappts!
Thx Compactdisc! Und auch thx an lagerhaus... sorry da sich so unh?flich war... war irgendwie sauer... sorry...
Beitrag ge?ndert am 17.09.2005 17:32 von adrians -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage