[PHP] aus mysql-abfrage bekommener wert in array als variable definieren

freddmann

Ensign
Registriert
Sep. 2005
Beiträge
241
hallo,
ich bin totaler php anfänger. ich habe eine tabelle mit den spalten ID und guthaben. ich möchte den wert, den ich durch die while-schleife erhalte als variable definieren, damit ich damit noch weiter arbeiten kann. ich hoffen mein problem ist verständlich. danke im vorraus :)
PHP:
<?php
  $ref = $_GET['ref'];
  $abfrage = "SELECT guthaben FROM diebspiel Where id = $ref";
  $ergebnis = mysql_query($abfrage);
  while($row = mysql_fetch_array($ergebnis))
    {
    echo $row[0];
    }
?>
 
Weiss nicht ob ich dich richtig verstanden habe, aber meinst du das so?

PHP:
<?php
  $ref = $_GET['ref'];
  $abfrage = "SELECT guthaben FROM diebspiel Where id = $ref";
  $ergebnis = mysql_query($abfrage);
  $arr = array();
  while($row = mysql_fetch_array($ergebnis))
    {
        $arr[] = $row[0];
    }
?>
Grüße

tewes
 
eine andere Möglichkeit wäre noch:
PHP:
<?php
  $ref = $_GET['ref'];
  $abfrage = "SELECT guthaben FROM diebspiel Where id = $ref";
  $ergebnis = mysql_query($abfrage);
  while($row = mysql_fetch_object($ergebnis))
    {
      echo $row->Spalte1."<br>";
      echo $row->Spalte2."<br>";
      echo $row->Spalte3."<br>";
      // so kannst du jede einzelne Spalte auslesen.
      //du kannst diese natürlich dann auch in einem Array speichern.
    }
?>
 
hmmm. ich glaube ihr habt mich missverstanden, der threadtitel ist auch unglücklich ausgedrückt. :(
da ich den wrt, der im array an der position [0] gespeichert ist, noch zum berechnen brauche, würde ich ihn gerne als normal variable haben.
ausserhalb der geschweiften klammern der while-schleife kann ich $row[0] nicht mehr benutzen oder? zumindest funzt es nich :(
 
Dann musst du die Version von mir nehemen. Da kannst du dann mir $arr[$i][0] auf den Wert zugreifen. Weiss aber nicht wie du damit weiterarbeiten willst. Musst halt selbst gucken was du an der stelle von $i einbaust.
 
PHP:
<?php
  $ref = $_GET['ref'];
  $deineVar='';
  $abfrage = "SELECT guthaben FROM diebspiel Where id = $ref";
  $result = mysql_query($abfrage,$db) or die("Mist: " . mysql_error($db));
  $deineVar = mysql_result($result, 0 ,0);
// Tu jetzt irgendwas mit $deinVar
// z.B.:
  $guthabenNeu = '';
  $guthabenNeu = $deineVar + $eingezahlterBetrag;
?>
Wenn du genau weißt das nur eine Zeile zurückgegeben wird dann brauchst du dir den Stress mit der while Schleife garnicht machen. Und wenn du mehrere Zeile hast solltest du nen Counter mitlaufen lassen. Geht zwar auch anderes aber ich finds klarer und man kann ihn gut zur Kontrolle mit ausgeben; hier mal als Beispiel wenn du mehrere Zeilen und Spalten auslesen wolltest:
PHP:
<?php
  $ref = $_GET['ref'];
  $abfrage = "SELECT guthaben, id FROM diebspiel Where id = $ref";
  $ergebnis = mysql_query($abfrage);
  $counter=0;
  while($row = mysql_fetch_array($ergebnis))
    {
        $fertigeWerte[$counter] = $row;
    }
  // UNd dann wieder einfach nutzen (z.B. die vierte Zeile):
echo $fertigeWerte[3]['guthaben']
?>
 
Soweit ich das verstanden habe, möchtest Du dir alle Werte von Guthaben in ein Array speichern, dass Du später, also außerhalb der while-schleife noch aufrufen kannst. Das würdest Du wie folgt am Besten machen:

Code:
[COLOR=#000000] [COLOR=#0000bb]<?php 
  $ref [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]$_GET[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'ref'[/COLOR][COLOR=#007700]]; 
  [/COLOR][COLOR=#0000bb]$abfrage [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]mysql_query("SELECT guthaben FROM diebspiel Where id = $ref")[/COLOR][COLOR=#007700]; 
  [/COLOR][COLOR=#0000bb]$array [/COLOR][COLOR=#007700]= array();
 
  while([/COLOR][COLOR=#0000bb]$row [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]mysql_fetch_row[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$abfrage[/COLOR][COLOR=#007700])) 
  { 
    [/COLOR][COLOR=#0000bb]$arr[/COLOR][COLOR=#007700]ay[] = [/COLOR][COLOR=#0000bb]$row[/COLOR][COLOR=#007700]["[/COLOR][COLOR=#0000bb]0"[/COLOR][COLOR=#007700]]; 
  } 
[/COLOR][COLOR=#0000bb]?>[/COLOR] 
[/COLOR]

Der Code bewirkt, dass alle guthaben-Werte, bei der die Id die Bedingung der Variable $ref erfüllt, in das Array $array gespeichert werden, dass Du danach dann (mit allen Werten ausgestattet) beliebig bearbeiten kannst.

Darüber hinaus kann ich Dir aber noch aus Sicherheitsgründen empfehlen, die Variable $ref dahingehend zu überprüfen, ob es sich tatsächlich um eine Zahl handelt. Dazu gibt es z.B. die Funktion (int).
 
Zurück
Oben