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)
2 Abfragen hintereinander, 2. mit Wert von 1. [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
2 Abfragen hintereinander, 2. mit Wert von 1.


 
Nackenbrecher
20-03-2007, 16:39 
 
Hi Leute,

ich habe da ein kleines Problem.

So sieht etwa die Tabelle aus:

http://munim.nackenbrecher.de/tabelle.gif


Und da möchte ich alles ausgeben habe was z.B. zu Name A gehört,
also alles mit RECORD 1

Daher hab ich mir das jetzt so gebaut:

1. Abfrage sucht nach Name A und gibt RECORD aus, also 1

2. Abfrage arbeitet mit der Ausgabe RECORD 1 und gibt alles aus.


Natürlich sind alle ist der Name variable und auch die RECORD,
aber ein auszugebener Datensatz hat immer die gleiche RECORD.


Das ist meine Formel bis jetzt:

<?php
$infos= mysql_query("SELECT `RECORD` FROM `Tabellenname` WHERE `value` = 'Name A'");

if (!$infos) {
echo 'Abfrage konnte nicht ausgeführt werden: ' . mysql_error();
exit;
}

while ($row = mysql_fetch_array ($infos))
{
echo $row['record'] ."<br>";
}

$ausgabe= mysql_query("SELECT * FROM `Tabellenname` WHERE `RECORD` = $infos");

if (!$ausgabe) {
echo 'Abfrage konnte nicht ausgeführt werden: ' . mysql_error();
exit;
}

while ($row = mysql_fetch_array ($ausgabe))
{
echo $row['id'] ." ";
echo $row['record'] ." ";
echo $row['value'] ."<br>";
}
?>

Alle Angaben sind nur Beispiele ...

Er zeigt mir auch das Ergebniss aus der 1. Abfrage an ... aber nutzt es nicht in der 2.!

Vielleicht geht es ja auch noch ganz anders ... kürzer?

 
wahsaga
20-03-2007, 16:51 
 
Original geschrieben von Nackenbrecher
Er zeigt mir auch das Ergebniss aus der 1. Abfrage an ... aber nutzt es nicht in der 2.!
"Er" kann's ja auch dort gar nicht sinnvoll benutzen - hätte dir auch auffallen sollen, wenn du dir die Query mal zur Kontrolle hättest ausgeben lassen!

 
Nackenbrecher
20-03-2007, 16:56 
 
Lasse ich doch:


while ($row = mysql_fetch_array ($infos))
{
echo $row['record'] ."<br>";
}


Gibt auch den Wert 1 ... aus .... zumind. wäre es hier im Beispiel so.
Habe die Variablen bissel verändert fürs Bespiel!

 
wahsaga
20-03-2007, 17:06 
 
Original geschrieben von Nackenbrecher
Lasse ich doch
Nein, lässt du nicht.

Du sollst dir den Unfug, den du da als zweite Query an die Datenbank abschickst, zur Kontrolle ausgeben lassen.


// Doof:
$ergebnis = mysql_query("SQL-Code hier");

// Vernüftig zum Debuggen:
$sql = "SQL-Code hier";
echo $sql;
$ergebnis = mysql_query($sql);

 
Nackenbrecher
20-03-2007, 17:27 
 
Gut ... bei der 2. Abfrage kommt anscheind ein fehler,
der erkennt den Wert aus der 1. nicht!

Wie würdet ihr die Abfrag machen?

 
prego
20-03-2007, 17:30 
 
Und die Fehlermeldung lautet?

mysql_query($sql) OR die(mysql_error());

 
Nackenbrecher
20-03-2007, 17:37 
 
Hab den Fehler:

Falsche:


while ($row = mysql_fetch_array ($infos))
{
echo $row['record'] ."<br>";
}

$ausgabe= mysql_query("SELECT * FROM `Tabellenname` WHERE `RECORD` = $infos");



Besser:

while ($row = mysql_fetch_array ($infos))
{
$row2 = $row['record'] ;
}

$ausgabe= mysql_query("SELECT * FROM `Tabellenname` WHERE `RECORD` = $row2);



Wenns jemand kürzer weiß ... dann gern her damit! :D

 
prego
20-03-2007, 17:44 
 
$infos= mysql_query("SELECT * FROM `Tabellenname` WHERE `value` = 'Name A'");

if (!$ausgabe) {
echo 'Abfrage konnte nicht ausgeführt werden: ' . mysql_error();
exit;
}

while ($row = mysql_fetch_array ($ausgabe))
{
echo $row['id'] ." ";
echo $row['record'] ." ";
echo $row['value'] ."<br>";
}

so evtl?

keine Ahnung was du vorhast....

 
Nackenbrecher
20-03-2007, 17:52 
 
Denke hat sich erledigt ... hab ja ne Lösung!


Vor habe ich folgendes ... in na Dropdown-Liste ... wählt man einen User aus.

Dieser wird dann in der DB gesucht.

Und alle Records die zu dem Usernamen passen werden angezeigt,
wobei der Username selbst auch einer der Records ist.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:16 Uhr.