Webdesign in Siegen

Datenbank in Array

Fragen zum Thema PHP können hier gestellt werden

Moderator: Basti

Datenbank in Array

Beitragvon veNom am 22.08.2007, 13:46

Wie kann ich Informationen aus einer Datenbank in ein Array schreiben?

Zur Zeit fällt mir nicht einmal der Befehl zum normalen auslesen ein, aber das kommt schon ...

Das Array sollte/muss so wie dieses hier sein...
Code: Alles auswählen
   $aUsers = array(
      "Ädams, Egbert",
      "Altman, Alisha",
      "Archibald, Janna",
      "Auman, Cody",
      "Bagley, Sheree",
      "Ballou, Wilmot"´,
      ...
All you get is all you need
Benutzeravatar
veNom
Mitglied
 
Beiträge: 1660
Registriert: 29.12.2005, 23:31
Wohnort: Wien

Beitragvon Juniorsatan am 22.08.2007, 14:13

Hi,

der Befehl dazu lautet mysql_fetch_array() bzw. mysql_fetch_row()

wenn mich nicht alles irrt, habe schon ewig nicht mehr in PHP gescriptet.

E:

normaler Befehl ist:

mysql_query()

für den spezifischen Befehl müsste man deine Datenbank kennen und was du auslesen willst.
Benutzeravatar
Juniorsatan
Mitglied
 
Beiträge: 187
Registriert: 19.02.2007, 18:32
Wohnort: Berlin

Beitragvon Basti am 22.08.2007, 14:41

Hast du vor, die Daten nochmal in einen neuen Array zu schreiben?

Die Standardbefehle findest du ja auch in meinem Grundlagen Tutorial.

Was genau hast du denn vor? So wie's im Moment aussieht, vermute ich mal, dass du eine Ausgabe machen möchtest, aber das sagst du am besten selbst mal genauer.
Für eine einfache Ausgabe würde dann ein "mysql_fetch_array()" in Verbindung mit einer "while()"-Schleife genügen, wenn das ganze dann nochmal in einen neuen Array soll musst du das dann eben auch wieder mithilfe der Schleife machen, wobei das eigentlich unsinnig ist, die Daten nochmal in einen neuen Array zu schreiben ;)
Benutzeravatar
Basti
Moderator
 
Beiträge: 1974
Registriert: 15.06.2006, 17:33
Wohnort: Rheinbreitbach

Beitragvon veNom am 22.08.2007, 14:52

Naja ich bastle gerade ein Formular wo ein Textfeld eine Autocomplete funktion bekommen soll.
Sprich: Der Use gibts was ein währen dem tippen überprüft das Script ob so etwas schon in der Datenbank steht und listet es per Dropdown beim textfeld auf...

Da hab ich ein Script gefunden wo 2 Elends lange Arrays enthalten sind, ich möchte diese 2 Array Inhalte durch meine Datenbankinhalte ersetzen.

edit:
Nun bekomme ich immer die Meldung "No Reulsts" das heißt schon mal besseres als Vorhin wo ich gar nichts ausgegeben bekommen habe.

Vl wisst ihr weiter hier das original:
Code: Alles auswählen
<?php

/*
note:
this is just a static test version using a hard-coded countries array.
normally you would be populating the array out of a database

the returned xml has the following structure
<results>
   <rs>foo</rs>
   <rs>bar</rs>
</results>
*/

   $aUsers = array(
      "Ädams, Egbert",
      "Altman, Alisha",
      "Archibald, Janna",
      "Auman, Cody",
      "Bagley, Sheree",
      "Ballou, Wilmot",
      "Bard, Cassian",
      "Bash, Latanya",
      "Beail, May",
      "Black, Lux",
   );
   
   
   $aInfo = array(
      "Bedfordshire",
      "Buckinghamshire",
      "Cambridgeshire",
      "Cheshire",
      "Cornwall",
      "Cumbria",
      "Derbyshire",
      "Devon",
      "Dorset",
      "Durham",
      "East Sussex",
      "Essex",
   );
   
   
   $input = strtolower( $_GET['input'] );
   $len = strlen($input);
   
   
   $aResults = array();
   
   if ($len)
   {
      for ($i=0;$i<count($aUsers);$i++)
      {
         // had to use utf_decode, here
         // not necessary if the results are coming from mysql
         //
         if (strtolower(substr(utf8_decode($aUsers[$i]),0,$len)) == $input)
            $aResults[] = array( "id"=>($i+1) ,"value"=>htmlspecialchars($aUsers[$i]), "info"=>htmlspecialchars($aInfo[$i]) );
         
         //if (stripos(utf8_decode($aUsers[$i]), $input) !== false)
         //   $aResults[] = array( "id"=>($i+1) ,"value"=>htmlspecialchars($aUsers[$i]), "info"=>htmlspecialchars($aInfo[$i]) );
      }
   }
   
   
   
   
   
   header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
   header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified
   header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
   header ("Pragma: no-cache"); // HTTP/1.0
   
   
   
   if (isset($_REQUEST['json']))
   {
      header("Content-Type: application/json");
   
      echo "{\"results\": [";
      $arr = array();
      for ($i=0;$i<count($aResults);$i++)
      {
         $arr[] = "{\"id\": \"".$aResults[$i]['id']."\", \"value\": \"".$aResults[$i]['value']."\", \"info\": \"\"}";
      }
      echo implode(", ", $arr);
      echo "]}";
   }
   else
   {
      header("Content-Type: text/xml");

      echo "<?xml version=\"1.0\" encoding=\"utf-8\" ?><results>";
      for ($i=0;$i<count($aResults);$i++)
      {
         echo "<rs id=\"".$aResults[$i]['id']."\" info=\"".$aResults[$i]['info']."\">".$aResults[$i]['value']."</rs>";
      }
      echo "</results>";
   }
?>


Und das Abgeänderte von mir
Code: Alles auswählen
<?php

//MySQL Datenbase Connectioninfo
$host = 'localhost';
$usr = 'root';
$pw = '';
$dbname = 'mvd';

//Datenbase connect
$link = @mysql_pconnect($host, $usr, $pw);
if ($link == FALSE) {
   echo '<p><b>Leider kann keine Verbindung zur Datenbank hergestellt werden.';
   echo 'Bitte versuchen Sie es später noch einmal.</b></p><br>';
   exit();
}
mysql_select_db($dbname);

$result = mysql_query("SELECT * FROM autocomplete") OR die(mysql_error());

if(@$result && mysql_num_rows($result)>0)
{
   while($aUsers = mysql_fetch_array($result))
   {
      echo $aUsers['Inputfeld'];
   }
}

if(@$result && mysql_num_rows($result)>0)
{
   while($aUsers = mysql_fetch_array($result))
   {
      echo $aInfo['Inputfeld'];
   }
}
   
   
   $input = strtolower( $_GET['input'] );
   $len = strlen($input);
   
   
   $aResults = array();
   
   if ($len)
   {
      for ($i=0;$i<count($aUsers);$i++)
      {
         // had to use utf_decode, here
         // not necessary if the results are coming from mysql
         //
         if (strtolower(substr(utf8_decode($aUsers[$i]),0,$len)) == $input)
            $aResults[] = array( "id"=>($i+1) ,"value"=>htmlspecialchars($aUsers[$i]), "info"=>htmlspecialchars($aInfo[$i]) );
         
         //if (stripos(utf8_decode($aUsers[$i]), $input) !== false)
         //   $aResults[] = array( "id"=>($i+1) ,"value"=>htmlspecialchars($aUsers[$i]), "info"=>htmlspecialchars($aInfo[$i]) );
      }
   }
   
   
   
   
   
   header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
   header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified
   header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
   header ("Pragma: no-cache"); // HTTP/1.0
   
   
   
   if (isset($_REQUEST['json']))
   {
      header("Content-Type: application/json");
   
      echo "{\"results\": [";
      $arr = array();
      for ($i=0;$i<count($aResults);$i++)
      {
         $arr[] = "{\"id\": \"".$aResults[$i]['ID']."\", \"value\": \"".$aResults[$i]['Inputfeld']."\", \"info\": \"\"}";
      }
      echo implode(", ", $arr);
      echo "]}";
   }
   else
   {
      header("Content-Type: text/xml");

      echo "<?xml version=\"1.0\" encoding=\"utf-8\" ?><results>";
      for ($i=0;$i<count($aResults);$i++)
      {
         echo "<rs id=\"".$aResults[$i]['ID']."\" info=\"".$aResults[$i]['info']."\">".$aResults[$i]['Inputfeld']."</rs>";
      }
      echo "</results>";
   }
?>
All you get is all you need
Benutzeravatar
veNom
Mitglied
 
Beiträge: 1660
Registriert: 29.12.2005, 23:31
Wohnort: Wien


Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast