Variablen
lvl
- php
Hi, folgendes Problem:
<?php
$a = 1;
$x.$a = 15;
echo $x1;
?>
Ausgabe:
15
wie schaffe ich es (da $x.$a nicht $x1 ergeben) das zu realisieren?
hi,
<?php
$a = 1;
$x.$a = 15;
echo $x1;
?>wie schaffe ich es (da $x.$a nicht $x1 ergeben) das zu realisieren?
"herr, unsere mindestens einmal wöchentlich auftauchende frage nach den variablen variablen gib uns heute" ... oder so ähnlich.
und dazu den hinweis, dass arrays idR. viel besser geeignet sind für solche vorhaben.
gruß,
wahsaga
"herr, unsere mindestens einmal wöchentlich auftauchende frage nach den variablen variablen gib uns heute" ... oder so ähnlich.
das hat mir in keinster weise geholfen...
Ich will an eine variable einen wert anhängen... aus $x will ich mit dem inhalt einer anderen variablen $x1 machen
bei variable variablen kann ich $x einen wert zuweisen und aus dem wert von $x mach ich noch eine variable...
und dazu den hinweis, dass arrays idR. viel besser geeignet sind für solche vorhaben.
kann ich bei meinem vorhaben nicht nurzen... will ja ein array auslesen in verschiedene variablen... also warum arrays benutzen
hi,
das hat mir in keinster weise geholfen...
noch genaueres raten war auf grund deiner unpräzisen problembeschreibung leider nicht drin.
Ich will an eine variable einen wert anhängen... aus $x will ich mit dem inhalt einer anderen variablen $x1 machen
ja dann mach's doch einfach ...
$x = 'xyz';
$a = 12;
$x1 = $x.$a;
gruß,
wahsaga
ja dann mach's doch einfach ...
$x = 'xyz';
$a = 12;$x1 = $x.$a;
Das Problem dabei ist...
Ich weiß im Vorfeld nicht wieviele Variablen ich benötige...
Daher wollte ich sie mir erstellen lassen.
also $x1 oder $x2 oder $x3 usw.
und die 1, 2 oder 3 sollte aus einer variable an die zu erstellende variable gehängt werden.
Hallo lvl!
und die 1, 2 oder 3 sollte aus einer variable an die zu erstellende variable gehängt werden.
Wobei sich hierfür wieder Array hervorragend eignen. Sagte das nicht Wahsaga schon im Vorposting?
Schönen Gruß
Afra
Wobei sich hierfür wieder Array hervorragend eignen. Sagte das nicht Wahsaga schon im Vorposting?
ich kann es auch für dich nochmal sagen...
Arrays kann ich diesem fall nicht NUTZEN
ich versuche ja daten aus einem array in verschiedene variablen zu packen... fragt nicht warum... das zu erklären würde zu lange dauern.
daher muss ich je nach array inhalt unterschiedlich viele variablen erstellen... in die jeweils ein index punkt des array geschrieben wird.
also muss ich die variablen generieren lassen $x1 $x2 $x3 usw.
Hallo!
Probiers doch mal mit der foreach-Anweisung.
Nico
Probiers doch mal mit der foreach-Anweisung.
und wie?
ich weiß nur wie ich da die arrays ausgeben kann mit echo
aber in unterschiedliche variablen packen???
Ich muss wahsaga recht geben. Mir fällt partout kein Problem ein, dass du mit arrays bekommen könntest. Zumal du dich in PHP noch nicht mal um die Speicherverwaltung kümmern musst wie in C.
Statt $x1, $x2, etc. hättest du dann halt array[0], array[1], etc.
vom system her ist das doch das gleiche...
MfG Hopsel
Statt $x1, $x2, etc. hättest du dann halt array[0], array[1], etc.
vom system her ist das doch das gleiche...
hmm, von dem standpunkt aus habe ich das noch garnicht betrachtet...
so würd mein problem auch lösen... und ich würd sogar noch einen schritt übergehen. das umwandeln von array in einzelne variablen.
das werd ich jetzt mal überschlagen.
und versuchen umzusetzen.
das werd ich jetzt mal überschlagen.
und versuchen umzusetzen.
Wenn du noch Hilfe brauchst, dann wende dich am besten gleich hier im Thread an uns ^^
MfG Hopsel
<?php
$sql = mysql_query("SELECT auftrags_id, abteil
FROM t_auftrag
WHERE auftrags_id = 11", $conn);
$row = mysql_fetch_assoc($sql);
$abteilung = explode(", ", $row['abteilung']);
$anzahl = count($abteilung);
$x = 0;
while($x < $anzahl)
{
$anzahl--;
$sql2 = mysql_query("SELECT email
FROM t_abteil
WHERE bezeichnung = '$abteilung[$anzahl]'", $conn);
$row2 = mysql_fetch_assoc($sql2);
$totalRows = mysql_num_rows($sql2);
}
echo $row2;
print_r($row2);
mysql_close($conn);
?>
Hier bekomme ich nur: ( [email] => 123@gmx.de )
da müssten aber ( [email] => 123@gmx.de, 456@gmx.de )
bei raus kommen.
Bitte sagt mir wo mein Fehler ist.
hi,
Hier bekomme ich nur: ( [email] => 123@gmx.de )
da müssten aber ( [email] => 123@gmx.de, 456@gmx.de )
bei raus kommen.Bitte sagt mir wo mein Fehler ist.
du ermittelst pro schleifendurchlauf den wert aus _einem_ datensatz - und überschreibst damit den aus dem vorherigen.
btw: DB-abfragen in schleifen sind im allgemeinen nicht empfehlenswert.
du kannst genauso gut in deiner WHERE-bedingung auf mehrere bezeichnungen gleichzeitig abfragen - schau dir mal den vergleichsoperator IN (...) an.
gruß,
wahsaga
du kannst genauso gut in deiner WHERE-bedingung auf mehrere bezeichnungen gleichzeitig abfragen - schau dir mal den vergleichsoperator IN (...) an.
$sql = mysql_query("SELECT auftrags_id, abteilung
FROM t_auftraege
WHERE auftrags_id = 11", $conn);
$row = mysql_fetch_assoc($sql);
$abteilung = explode(", ", $row['abteilung']);
$anzahl = count($abteilung);
$sql2 = mysql_query("SELECT email
FROM t_abteilung
WHERE bezeichnung = IN ($abteilung)", $conn);
$row2 = mysql_fetch_assoc($sql2);
$totalRows = mysql_num_rows($sql2);
echo $row2;
print_r($row2);
geht auch nicht... da sagt er:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in D:\Webserver\WWW\html\azot\order\getmail.php on line 15
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\Webserver\WWW\html\azot\order\getmail.php on line 16
auch wenn ich:
IN bezeichnung ($abteilung)",conn; //statt where
schreibe geht das nicht.
hi,
geht auch nicht... da sagt er:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in D:\Webserver\WWW\html\azot\order\getmail.php on line 15
nutze bitte _immer_ mysql_error(), nachdem du einer query an die DB absetzt - um zu erfahren, wo der fehler liegt.
und lasse dir die erzeugte query zur kontrolle ausgeben.
$query = "SELECT ...";
echo $query."<br>";
$sql2 = mysql_query($query) or die(mysql_error());
auch wenn ich:
IN bezeichnung ($abteilung)",conn; //statt where
schreibe geht das nicht.
das ist ja auch kompletter unfug.
gruß,
wahsaga
auch wenn ich:
IN bezeichnung ($abteilung)",conn; //statt where
schreibe geht das nicht.das ist ja auch kompletter unfug.
wie dann?
ergebnis des errors :)
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'IN ('Array')' at line 3
sagt mir mal so garnichts
hi,
wie dann?
richtig :-)
ergebnis des errors :)
*seufz*
und wo ist die ausgabe der query?
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'IN ('Array')' at line 3
willst du etwas wirklich bezeichnung nur mit einem einzelnen wert, und zwar dem wert 'Array', vergleichen?
welchen code hast du jetzt benutzt?
gruß,
wahsaga
$sql = mysql_query("SELECT auftrags_id, abteilung
FROM t_auftraege
WHERE auftrags_id = 11", $conn);
$row = mysql_fetch_assoc($sql);
$abteilung = explode(", ", $row['abteilung']);
$anzahl = count($abteilung);
$sql2 = mysql_query("SELECT email
FROM t_abteilung
IN ('$abteilung')", $conn) or die(mysql_error());
$row2 = mysql_fetch_assoc($sql2);
$totalRows = mysql_num_rows($sql2);
echo $row2;
print_r($row2);
mysql_close($conn);
hi,
$sql2 = mysql_query("SELECT email
bitte schreibe dies so, wie ich es dir in https://forum.selfhtml.org/?t=103075&m=634479 gezeigt habe, um auch eine kontrollausgabe der erzeugten query zu bekommen.
gruß,
wahsaga
hi,
$sql2 = mysql_query("SELECT email
bitte schreibe dies so, wie ich es dir in https://forum.selfhtml.org/?t=103075&m=634479 gezeigt habe, um auch eine kontrollausgabe der erzeugten query zu bekommen.
dann mach doch einfach echo $sql2."<br>"; dann haste das was du wolltest.
aber ich bekomme folgendes ausgespuckt: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'IN ('Array')' at line 3
hi,
bitte schreibe dies so, wie ich es dir in https://forum.selfhtml.org/?t=103075&m=634479 gezeigt habe, um auch eine kontrollausgabe der erzeugten query zu bekommen.
dann mach doch einfach echo $sql2."<br>"; dann haste das was du wolltest.
wenn du glaubst, dass ich die elementarsten debugging-schritte für dich mache, hast du m.E. vermutlich einen knall, neben dem der urknall nur ein leises klingeln war.
aber ich bekomme folgendes ausgespuckt: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'IN ('Array')' at line 3
verflixt noch mal, das hatten wir doch bereits ...
aber wie die dämliche query nun letztendlich aussieht, hast du immer noch nicht gepostet!
wenn ein paar elementare testausgaben zu machen und hier zu posten dich überfordert, oder von mir aus auch gegen deine religion geht - dann such' dir bitte woanders hilfe - auf dieses spielchen habe ich jetzt keine lust mehr.
gruß,
wahsaga
$x = 0;
Ich verstehe den Sinn dieser Variable nicht ganz...
while($x < $anzahl)
schreib doch einfach 'while(0 < $anzahl)'
{
$anzahl--;
$sql2 = mysql_query("SELECT email
FROM t_abteil
WHERE bezeichnung = '$abteilung[$anzahl]'", $conn);
$row2 = mysql_fetch_assoc($sql2);
$totalRows = mysql_num_rows($sql2);
}echo $row2;
print_r($row2);mysql_close($conn);
?>
Du schreibst die Daten nicht in ein array.
Ich kenne mich nicht mit mysql aus, aber benutze doch statt $row2 und $totalRows Arrays...
So hast du Datensatz eins an der Stelle von $row2[0] usw.
$zahl = $anzahl;
while($x < $zahl)
{
$anzahl--;
$sql2 = mysql_query("SELECT email
FROM t_abteil
WHERE bezeichnung = '$abteilung[$anzahl]'", $conn);
$row2[$x] = mysql_fetch_assoc($sql2);
$totalRows[$x] = mysql_num_rows($sql2);
$x++;
}
for($x = 0; $x < $zahl; $x++)
{
echo $row2[$x];
print_r($row2[$x]);
}
mysql_close($conn);
MfG Hopsel
foreach ($array as $a=>$b){
$x=$x.$b;}
Nico
Ⓗⓐⓛⓛⓞ lvl!
das zu erklären würde zu lange dauern.
Hach ja, das ist wohl auch eine der beliebtesten Ausreden, die es so
gibt.
℆, ℒacℎgas
Hach ja, das ist wohl auch eine der beliebtesten Ausreden, die es so gibt.
Ok für dich...
Ich lade daten aus einer spalte einer tabelle 1
die landen in einem array array (1, 2, 4) <-- bsp:
eintrag:
--------------
|1|text|1,2,4|
______________
nun muss ich die daten aber einzeln habe, da ich anhand der daten sachen aus einer datenbank raus holen muss
tabelle 2 bsp:
----------
|1|email1|
----------
|2|email2|
----------
|3|email3|
----------
|4|email3|
----------
so da ich die daten aber in einem array habe hab ich es nicht geschaft die eMailadressen zu bekommen...
nun will ich die daten einzelnd in unabhängige variablen bekommen
$x1 = 1
$x2 = 2
$x3 = 4
um dann die datenbank abfrage zu machen...
wenn einer nen besseren vorschlag hat... ich bin für alles offen
Ⓗⓐⓛⓛⓞ lvl!
nun will ich die daten einzelnd in unabhängige variablen bekommen
[...]
wenn einer nen besseren vorschlag hat...
Ja, und der ist hier schon desöfteren gefallen: Arrays.
$x = array (1 => "15", "16", "53" ...);
Dann kannst du hierauf zugreifen wie auf Variablen, nur viel übersichtlicher
und systematischer (und du kannst besser damit arbeiten, z.B. Sortierung):
$x[1] = 15; ...
℆, ℒacℎgas
hi,
Das Problem dabei ist...
Ich weiß im Vorfeld nicht wieviele Variablen ich benötige...Daher wollte ich sie mir erstellen lassen.
also $x1 oder $x2 oder $x3 usw.
und die 1, 2 oder 3 sollte aus einer variable an die zu erstellende variable gehängt werden.
also willst du, auch wenn du das noch nicht begriffen hast, mit variablen variablen arbeiten.
gruß,
wahsaga
Hallo!
Was willst du jetzt genau realisieren?
Nico
Hi,
was zu realisieren ???
$a = 1;
$x.$a = 15;
echo $x1;
Ich sehe hier nur eine Verkennung von $x und $a aber keine Zuweisung an $x1.
Du meinst $x1 = $x.$a, oder wie jetzt ?
MfG
Danny
Ⓗⓐⓛⓛⓞ lvl!
<?php
$a = 1;
$x.$a = 15;
echo $x1;
?>
Meinst du
$a = 1;
${'x'.$a} = 15;
echo $x1;
?
Wenn nicht, präzisiere deine Frage!
℆, ℒacℎgas