Seite 1 von 3

Problem mit SQL-Abfrage

Verfasst: 30.07.2008 21:31
von porfavor
Hallo,

ich habe folgenden Code. Jedoch bekomme ich keinen Output dafür, was egtl durch echo hervorgerufen werden sollte. Bei Bedarf kann ich auch noch die Struktur der DB Tabelle posten.

Hier der Code:

Code: Alles auswählen

<html>
<body background="bg.jpg">
</body>
</html>
<?php

/*Formulardaten umwandeln*/
$firstname = $_POST['firstname'];
$surname = $_POST['surname'];
$gender = $_POST['gender'];
$day = $_POST['day'];
$month = $_POST['month'];
$year = $_POST['year'];
$location = $_POST['location'];
$state = $_POST['state'];
$email = $_POST['email'];
$comment = $_POST['comment'];

/*Verbindung zur DB*/
include_once("db.php");

/*In die DB einlesen*/
$entry = "INSERT INTO hug(firstname, surname, gender, day, month, year, state, location, email, comment)
VALUES ('$firstname', '$surname', '$gender', '$day', '$month', '$year', '$state', '$location', '$email', '$comment')"
or die (mysql_error());
$input = mysql_query($entry);

echo "<center><b>Ihr Eintrag wurde erfolgreich vorgenommen!</b></center><br><br><br>";


/*Per Zufall aus der DB auslesen*/

$abfrage = mysql_query("Select * FROM hug ORDER BY RAND() LIMIT 1");
$row = mysql_fetch_object($abfrage);
echo $row->text;
mysql_close($connect);
?>

Das Einlesen klappt ohne Probleme. Nur das Auslesen nicht. Wahrscheinlich ist der Fehler schon lächerlich aber ich bin kann grad nicht gut denken, was habe ich übersehen? Ich wäre für Hilfe dankbar.

Verfasst: 30.07.2008 21:40
von atrox
Probier mal

Code: Alles auswählen

echo $row['text']; 
ansonsten

Code: Alles auswählen

echo $arr = (is_array($row)) ? 'Okay' : 'Kein Array';

Verfasst: 30.07.2008 21:45
von porfavor
das erste geht nicht.
Das zweite liefert "Kein Array".
Aber egtl war das ja schon klar...

Verfasst: 30.07.2008 22:11
von atrox
Äh, klar, musst natürlich noch

Code: Alles auswählen

$row = mysql_fetch_assoc($abfrage);
machen, wenn dann nichts kommt, liegt es an der Abfrage (also andem was mysql_query sendet).

Verfasst: 30.07.2008 22:19
von porfavor

Code: Alles auswählen

$abfrage = mysql_query("Select * FROM hug ORDER BY RAND() LIMIT 1");
 $row = mysql_fetch_object($abfrage);
 $row = mysql_fetch_assoc($abfrage);
echo $row->text;
liefert auch nichts. Meintest du das so?

Ja aber dann würde doch ein fehler kommen?

Verfasst: 30.07.2008 22:34
von atrox

Code: Alles auswählen

$abfrage = mysql_query("Select * FROM hug ORDER BY RAND() LIMIT 1");
 $row = mysql_fetch_assoc($abfrage);
echo $row['text'];

echo $arr = (is_array($row)) ? 'Okay' : 'Kein Array';
So meinte ichs.

Verfasst: 30.07.2008 22:37
von porfavor
jetzt bekomme ich zwar okay, aber keinen anderen output.

Verfasst: 30.07.2008 23:22
von atrox
Les mal das ganze Array mit einer foreach-Schleife aus.

Code: Alles auswählen

foreach ($row as $value) {
    echo $value;
}

Verfasst: 31.07.2008 01:25
von porfavor
das geht danke :)

Wenn ich nochmal Hilfe brauche, melde ich mich.

Verfasst: 31.07.2008 19:33
von porfavor
So neue Frage:

Habe noch nie mit sowas zufälligem gearbeitet.

Ich musste bisschen ummodeln und habe jetzt einzelne Abfragen. Ich möchte es aber zwar gern so, dass z.B. der Vorname per Zufall ausgelesen wird. Nur sollen die anderen Informationen aus der gleiche Zeile stammen. Wie mache ich das?

Bsp:


In der DB Tabelle steht folgendes

Firstname Surname Email
fn1 sn1 em1
fn2 sn2 em2
fn3 sn3 em3

Ich will aber immer eine Zeile auslesen. Nur brauch ich für das Template eben einzelne Variablen.