mysql tabelle auslesen und ausgeben

toffel
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
<?php ....
mysql_select_db ($tabellenname,$conn); 

$auslesen1 "SELECT * FROM test1";
$auslesen2 mysql_query($auslesen1,$conn); 

while ($auslesen mysql_fetch_array($auslesen1)) {
echo $auslesen['Name'];
}

mysql_close($conn); ?>


wenn ich den code so ausführe bekomme ich

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

meine frage ist jetzt warum *grml*

danke für Hilfe
Chris Hunter
du hast keine gültige ressource ID übergeben...
schreib mal:

php:
1:
2:
3:
<?php while ($auslesen mysql_fetch_array($auslesen2)) {
echo $auslesen['Name'];
} ?>


und versuch mal beschreibende variabeln zu nehmen z.b.

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
<?php mysql_select_db ($tabellenname,$conn); 

$query "SELECT * FROM test1";
$result mysql_query($query,$conn); 

while ($data mysql_fetch_array($result)) {
echo $data['Name'];
}

mysql_close($conn); ?>
toffel
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:

<?php ....

mysql_select_db ($tabellenname,$conn); 

$query "SELECT * FROM test1";
$result mysql_query($query,$conn); 

while ($data mysql_fetch_array($result)) {
echo $data['Name'];
}

mysql_close($conn); ?>



hab das jetzt so gemacht und trotzdem kommt


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
daHooligan
dann mach mal echo $conn; mit rein und schreib mal (ohne passwörter etc,) was du $con zugewiesen hast...
toffel
php:
1:
2:
3:
4:
5:
6:
<?php $conn = @ mysql_connect($localhost,$benutzername,$passwort); 
if (!$conn) 
{ 
die ("Verbindungsversuch zur Datenbank ist fehlgeschlagen !"); 
}
mysql_select_db ($test1,$conn); ?>
Prophet
Versuch mal anstatt der Server die DB-VErbingung zu übergeben...
toffel
versteh ich nicht verwirrt
Prophet
lege in $conn anstatt mysql_connect mysql_select_db ab.
toffel
danke aber habe ich schon hinbekommen


php:
1:
2:
<?php $result mysql_query($query,$conn)
or die(mysql_error().''); ?>


jetzt geht es komischerweise ...und kommt keine meldung mehr
toffel
nochmal eine andere frage

habe mir 10 sachen ausgeben lassen
wenn ich
php:
1:
<?php echo $data ['name']; ?>

mache

schreibt er mir alle 10 sachen

jetzt wollte ich das ganze in eine Variable machen um mir das später nochmal ausgeben zu lassen

php:
1:
<?php $namedata $data ['name']; ?>



wenn ich jetzt irgendwo weiter unten $namedata schreibe dann gibt er mir nur 1 namen aus. Wenn ich das ganze jetzt nicht in einer Variable mache und $namedata = $data ['name']; nehme, kommen alle 10. Gibt es da eine möglichkeit bei der Variable auch 10 ausgeben zu lassen ?
Prophet
das liegt daran wiel in der while schleife immer nur ein datensatz in der variablen data ablegt wird. wenn du also diesen datensatz in der anderen vairablen speicherst ist es klar das nur er vorhanden ist.

du musst also immer ein neues element der variablen anhängen damit sie nachher alle daten sätze enthält.

php:
1:
2:
3:
<?php
$namedata[count($namedata)] = $data['name'];
?>


du musst natürlich vorher sagen das $namedata ein array ist. der quelltext obenmuss dann in der schleife stehen damit während dessen ablauf alle namen in form eines arrays in $namedata abgelegt werden.
toffel
und wenn ich mir die 10 datensätze in je einer Variable ausgeben lasse ?

und später das so läuft ?

$name1
$name2
u.s.w.

wäre das einfacher zu realisieren ? wenn ja wie ?
daHooligan
es ginge höchstens als ausgabe in ein array so wie Prophet Sa gescrieben hat...
Prophet
nein ein array ist hier um einiges sinnvoller. bei meiner version wüdest du später so auf die variablen zugreifen:

code:
1:
2:
3:
4:
5:
$namedata[0];
$namedata[1];
$namedata[2];
$namedata[3];
$namedata[4];
toffel
okay danke hat geklappt smile


habe nur noch ein Problem mit mein Script und zwar kommt :

Use of undefined constant time - assumed 'time'

in der Zeile
php:
1:
<?php ${timeresult.$i} = calcDiff($zeit, ${time.$i}); ?>

meine Meinung nach kommt immer so ein Fehler wenn Strings nicht richtig gequotet sind oder sehe ich da was falsch ? *grml*
Prophet
time steht dort ohne dollar zeichen es versucht also eine konstante zu finden die es nicht gibt. gib time einfach das dollarzeichen welches du falsch gestzt hast.

btw: was sollen die ganzen geschweiften klammern? nimmm bitte normale klammren... die geschweiften sind nur für blocks da...
toffel
ich glaube ich habe zu wenig kopiert.

habe es jetzt so zum laufen bekommen

php:
1:
<?php ${'timeresult'.$i} = calcDiff($zeit, ${'time'.$i}); ?>



php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
<?php function calcDiff($zeit$time) {
    $timediff $zeit $time;
    $y intval($timediff 31536000);
    $remain $timediff 31536000;
    $m intval($remain 2628000);
    $remain $timediff 2628000;
    $d intval($remain 86400);
    $remain $timediff 86400;
    $h intval($remain 3600);
    $remain $remain 3600;
    $i intval($remain 60);
    $s $remain 60;






return ($y "$y<font color=\"#FF9900\">y</font>" '')
      .($m "$m<font color=\"#FF9900\">m</font>&nbsp;" '')
      .($d "$d<font color=\"#FF9900\">d</font>&nbsp;" '')
      .($h "$h<font color=\"#FF9900\">h</font>&nbsp;" '')
      .($i "$i<font color=\"#FF9900\">m</font>&nbsp;" '')
      ."$s<font color=\"#FF9900\">s</font>";


}
for ($i 1$i <= 10$i++) {
${'timeresult'.$i} = calcDiff($zeit, ${'time'.$i});
} ?>


eigentlich sollte ich jetzt mit $timeresult1,$timeresult2,...,$timeresult10

alle 10 ausgelesenen time resultate bekommen

aber stattdessen kriege ich nur


Undefined variable: time1
Undefined variable: time2
...
Undefined variable: time10

verwirrt verwirrt verwirrt verwirrt und ich weiß nicht wieso
daHooligan
na ja,da fehlt ein "$" davor...
was soll sowas hier überhaupt bewirken?
php:
1:
<?php ${'time'.$i?>
tkshorty
du solltest dir unbedingt mal durrchlesen wie mann arrys benutzt. das würde das ganze ungemein erleichtern