Gegen Bilderklau - Das Original (https://www.gegen-bilderklau.net/index.php)
- Design, Website, Copyright (https://www.gegen-bilderklau.net/board.php?boardid=80)
--- Homepagehilfe (https://www.gegen-bilderklau.net/board.php?boardid=27)
---- Homepagehilfe - Archiv (https://www.gegen-bilderklau.net/board.php?boardid=139)
----- [PHP & MySQL] Variable in Variable - kann geschlossen werden (https://www.gegen-bilderklau.net/thread.php?threadid=170352)


Geschrieben von callous. am 05.04.2010 um 12:00:

  Variable in Variable - kann geschlossen werden

php:
1:
$hufe2["hufe$vh$lr"];


In der Datenbank habe ich es so abgespeichert:
hufevl, hufevr, hufehl und hufehr

Da ich beim Hufeauskratzen nicht hufehl und so angeben will, sondern Felder vorgebe (einmal wo man vorne/hinten auswählt und einmal wo links/rechts ausgewählt wird), habe ich es so gemacht:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
<?php
include("head.php");
?>

<html>
<head>
<title>equinestars</title> 
<link rel="stylesheet" type="text/css" href="style.css">
</head>

<body bgcolor="transparent">

<?php
include("datenbank.php");
$pid "$_GET[pid]";

$Ergebnis mysql_query"SELECT * FROM pferd where pid = '$pid' AND besitzer = '$nickname'" );

if (@mysql_num_rows($Ergebnis) == 0) {
include("fehler.php");
}

else {
$Data mysql_fetch_array($Ergebnis);
$hufe $Data[hufevl]+$Data[hufevr]+$Data[hufehl]+$Data[hufehr];
$vh $_POST[vh];
$lr $_POST[lr];
$hufe2["hufe$vh$lr"];

echo '<h1>Hufpflege (<a href="pflege.php?pid=' $Data[pid] . '" target="content">BACK</a>)</h1>

<div align="justify">
  <table border="1" cellpadding="5" width="100%">
    <tr>
      <td width="100%" colspan="2" id="head"><b>Hufpflege</b></td>
    </tr>
  </table>
</div>
<br>
<center><img src="img/pferde/' $Data[foto] . '"><br>
<b>Foto:</b> ' $Data[copy] . '<br><br>
<img src="img/balken_' $hufe '.png"> ' $hufe ' %</center><br><br>

<form method="POST" action="hufe2.php?pid=' $Data[pid] . '">
<div align="justify">
  <table border="0" cellpadding="5" width="100%">
    <tr>
      <td width="100%" colspan="3" id="head"><b>Hufe auskratzen</b></td>
    </tr>
    <tr>
      <td width="33%" id="hell">
      <select size="1" name="vh">
          <option>vorne</option>
          <option>hinten</option>
          </select></td>
      <td width="34%" id="hell">
      <select size="1" name="lr">
          <option>links</option>
          <option>rechts</option>
          </select></td>
      <td width="33%" id="dunkel"><input type="submit" value="»" id="button"></td>
    </tr>
  </table>
</div>
</form>';
mysql_query("UPDATE pferd SET $hufe2 = ($hufe2 + 1) WHERE ($hufe2 + 1) <= '25' AND besitzer = '$nickname' AND pid = '$pid'"); 

}
?>

</body>
</html>


Mein Problem ist, dass nichts eingetragen wird, obwohl der Standartwert bei 20 ist...



Geschrieben von Thorim am 05.04.2010 um 13:31:

 

in dem MySQL-Query setzt du ja $hufe2 ein, oben definierst du $hufe2 aber als Array und so wird nicht wirklich was in den Query eingesetzt

schätze in Zeile 32 sollte das lauten
php:
1:
$hufe2 'hufe' $vh $lr;



Geschrieben von Thorim am 05.04.2010 um 14:02:

 

so wie ich das seh, ist $hufe2 immer der Feldname..
der Wert des Feldes wird um 1 erhöht, wenn er niedriger als 25 ist

in 'sauberer' Syntax:
php:
1:
mysql_query("UPDATE `pferd` SET `$hufe2` = (`$hufe2` + 1) WHERE `$hufe2` < '25' AND `besitzer` = '$nickname' AND `pid` = '$pid'");



Geschrieben von callous. am 05.04.2010 um 14:39:

 

Klappt auch nicht...

@Mordred: $hufe2 soll eig. das hufehr, hufevl usw. ersetzen...
Also so zum Beispiel:

php:
1:
UPDATE pferd SET hufevl = (hufevl 1WHERE (hufevl 1) <= '25'


Da ich ja nicht weiß, was der User wählt, hab ich es so gemacht...

Oder soll ich doch lieber eine if-Abfrage benutzen?



Geschrieben von Thorim am 05.04.2010 um 15:13:

 

das sind aber schon dropdown-auswahl-felder und keine checkboxen oder?



Geschrieben von Thorim am 05.04.2010 um 15:54:

 

upsi, ja ok, aber wenn dann $hufe2 = 'hufe' . $vh . $lr; machst
steht in $hufe2 zb hufevornelinks statt hufevl

müsste dann glaub so gehen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
<td width="33%" id="hell">
      <select size="1" name="vh">
          <option value="v">vorne</option>
          <option value="h">hinten</option>
          </select></td>
      <td width="34%" id="hell">
      <select size="1" name="lr">
          <option value="l">links</option>
          <option value="r">rechts</option>
          </select></td>



Geschrieben von callous. am 05.04.2010 um 16:09:

 

Danke, mit dem value klappts nun smile
Ich verblöde solangsam wirklich...

Kann geschlossen werden.


Forensoftware: Burning Board, entwickelt von WoltLab GmbH