Homepage selbermachen 7.852 Themen, 35.619 Beiträge

Abrage über mehrere tabellen klappt nicht

T E S T E R / 4 Antworten / Baumansicht Nickles

hi,

habe vor, mehrere tabellen abzufragen. aber das klappt nicht. alle besitzen die spalte ID und diese ist auch primärschluessel.

folgende script hab ich dazu programmiert:

<?php
$db=mysql_connect("localhost","","");
$result=mysql_list_tables("datenbank",$db);
$gesamt=mysql_num_rows($result);
if(isset($absenden))
{
for($i=0;$i<$gesamt;$i++)
{
$table_name = mysql_tablename($result,$i);
}
$result=mysql_query("select * from $table_name where id like \'%$id%\'",$db);

while($zeile=mysql_fetch_object($result))
{
echo "$zeile->id<br>";
}
}
?>

<form action="index.php4">
<input type=text name="id">
<input type=submit name="absenden">
</form>

bei Antwort benachrichtigen
xafford T E S T E R „Abrage über mehrere tabellen klappt nicht“
Optionen

$db=mysql_connect("localhost","","");
$result=mysql_list_tables("datenbank",$db);
$gesamt=mysql_num_rows($result);
if(isset($absenden))
{
for($i=0;$i {
$tn[] = mysql_tablename($result,$i);
}
foreach($tn as $val)
{
$string[]="$val.id LIKE '%".$id."%'";
}
$string=implode(" AND ",$string);
$tn=implode(",",$tn);
$sql="SELECT * FROM $tn WHERE $string";
$result=mysql_query($sql,$db);
while($zeile=mysql_fetch_object($result))
{
echo "$zeile->id";
}
}

[hab noch was eingefügt, hoffe daß es so läuft]

[Diese Nachricht wurde nachträglich bearbeitet.]

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
T E S T E R xafford „ db mysql_connect localhost , , result mysql_list_tables datenbank , db gesamt...“
Optionen

Hi Xafford,
hab das so probiert.
<?php

$db=mysql_connect("localhost","","");
$result=mysql_list_tables("daten",$db);
$gesamt=mysql_num_rows($result);
if(isset($absenden))
{
for($i=0;$i<$gesamt;$i++)
{
$table_name[] = mysql_tablename($result,$i);
}
$table_name=implode(",",$table_name);
foreach($table_name as $val){$where[]=$val.".id LIKE '%$id%'";}

$result=mysql_query("select * from $table_name $where",$db);
while($zeile=mysql_fetch_object($result))
{
echo "$zeile->id";
}
}
?>
<form action="index.php4">
<input type=text name="id">
<input type=submit name="absenden">
</form>

klappt allerdings nicht. WO hängt der fehler? ich seh vor lauter bäumen den wald nicht

bei Antwort benachrichtigen
T E S T E R Nachtrag zu: „Abrage über mehrere tabellen klappt nicht“
Optionen

upsa deine korrektur hate garnicht gesehen, die läuft zwar ohne fehler aber findet nichts :-/ ich schau mal ob ich da nicht allein dahinter steige ;)

bei Antwort benachrichtigen
Borlander T E S T E R „Abrage über mehrere tabellen klappt nicht“
Optionen
<?PHP
  $db_server = '';
  $db_name = '';
  $db_user = '';
  $db_pass = '';

  $db = mysql_connect($db_server, $db_user, $db_pass)
     or die('Fehler: Keine Verbindung zur Datenbank...');
  mysql_select_db($db_name, $db)
     or die('Fehler: Die Datenbank "'.$db_name.'" existiert nicht...');

  echo "<h2>Tabellen in $db_name:</h2>";
  $tables = mysql_query('SHOW TABLES', $db); // Tabellen ermitteln
  while($table = mysql_fetch_row($tables))
  {
    $table = $table[0];
    echo "<h2>$table</h2>";
    $query = 'SELECT id FROM '.$table.' WHERE id LIKE "%'.$id.'%"';
    $result = mysql_query($query , $db);
    while($row = mysql_fetch_array($result))
    {
      // Ausgabe der Tabellen
      echo $row['id'].'<br>';
    }
  }

/*
* Habs getestet und es funktionierte...
* CU Borlander
*/
?>
bei Antwort benachrichtigen