Webdesign in Siegen

mysql abfragen :D

Fragen zum Thema PHP können hier gestellt werden

Moderator: Basti

mysql abfragen :D

Beitragvon Guillermo am 16.02.2008, 02:42

Hallo Leute,
ich hab da eine Frage, ich befasse mich jetzt seit einer Woche erstmals mit PHP, und soweit klappt auch alles ganz gut...
Jetzt habe ich aber ein kleines Problem...
Ich weiß zwar jetzt wie ich Tabellen von mysql auslesen kann und dann ausgeben kann (while schleife), aber leider kann ich mein problem damit irgendwie nicht lösen...
Ich soll ein Script für einen Fanclub schreiben, durch das man Karten bestellen kann
Link : http://legende.le.ohost.de/fcb_bestellu ... llung2.php
So, das Formular ist ja einigermaßen fertig, aber jetzt will ich , dass das Script Daten aus einer mysqltabelle ausließt und dann z.b. in der tabelle steht dass es 4 Stehkarten gibt, und deshalb sollen bei "Stehkarten" im Formular dann bis zu 4 Karten ausgewählt werden können, man kann das ja in meinem Script schon per PHP regeln, welche spiele wie viel karten usw, ich bräuchte aber noch den mysql befehl, den ich aber nirgends finde, ich weiß nicht ob ihr mich versteht :)

Ich hoffe jemand kann mir helfen, sagt einfach wo es bei der Artikulation meiner Frage Verständnisfehler gibt :)

P.s. könnte der Befehl irgendwas mit $query="Select spalte FROM irgendeine_tabelle" oder sowas sein?

Edit // Noch eine Zusatzfrage : Kann man mysql daten nur mit while schleifen auslesen, denn dann kann ich irgendwie nich richtig an die daten ran, keine ahnung wie ich die aus der tabelle mit der while schleife auslesen soll, und dann auch noch diese werte im weiteren php script benützen soll
Gebildet ist der, der weiß, wo er findet, was er nicht weiß.
Benutzeravatar
Guillermo
Mitglied
 
Beiträge: 486
Registriert: 01.10.2007, 18:18
Wohnort: Auerbach i.d.Opf

Re: mysql abfragen :D

Beitragvon Basti am 16.02.2008, 12:17

Hast du dir denn schon die MySQL Grundlagen angeeignet? Ansonsten würde ich dir nämlich mal das Tutorial hier auf dW nahelegen.

Wenn du nun feststellen möchtest, wie viele Karten es für ein Spiel gibt, dann kannst du diese ja einfach aus der Tabelle auslesen.

Code: Alles auswählen
SELECT sitzkarten, stehkarten FROM spiele WHERE spiel='bayern_bremen_11.2'


Das ist jetzt nur ein Beispiel zur Funktionsweise, deine Tabellenstruktur sieht ja wahrscheinlich nicht identisch aus.
Jedenfalls kannst du diese Werte nun in PHP verarbeiten. Wenn es sich nur um einen Result handelt benötigst du dann natürlich auch keine while()-Schleife mehr, das ganze könnte dann so aussehen:

Code: Alles auswählen
$result     = mysql_query("SELECT sitzkarten, stehkarten FROM spiele WHERE spiel='bayern_bremen_11.2'") OR die(mysql_error());
$row        = mysql_fetch_array($result);
$sitzkarten = $row['sitzkarten'];
$stehkarten = $row['stehkarten'];


Um jetzt noch die nötigen Ausgaben zu erzeugen kannst du dann wieder eine normale for()-Schleife verwenden:

Code: Alles auswählen
echo '<select name="sitzkarten">';

for($i=1; $i<=$sitzkarten; $i++)
{
  echo '<option value="' . $i . '">' . $i . '</option>';
}

echo '</select>';


Für die Stehkarten ist das natürlich identisch.
Benutzeravatar
Basti
Moderator
 
Beiträge: 1974
Registriert: 15.06.2006, 17:33
Wohnort: Rheinbreitbach

Re: mysql abfragen :D

Beitragvon Guillermo am 16.02.2008, 12:44

Hey Basti, ja mit MySql hab ich mich auch schon auseinandergesetzt, aber ich denke du hast mir auf jeden Fall geholfen!!!
Und das obwohl ich mich nicht richtig ausgedrückt habe :), du hast sofort gewusst was ich meine :P, DANKE!

//Edit:
Ach genau und noch ne Frage:
Kann man das so machen, das man nur ein Formular mach, also wie ich das in dem Testformular gemacht hab, und dass dann ich z.b. ein Spiel auswähle die sitz und stehkarten zu dem zugehörigen spiel ausgelesen werden und dann halt in ein dropdownmenü geschrieben werden, also das des halt vor Ort aktualisiert wird, geht das irgendwie ?
Gebildet ist der, der weiß, wo er findet, was er nicht weiß.
Benutzeravatar
Guillermo
Mitglied
 
Beiträge: 486
Registriert: 01.10.2007, 18:18
Wohnort: Auerbach i.d.Opf

Re: mysql abfragen :D

Beitragvon Labrar am 16.02.2008, 14:03

Genau daß macht ja eigentlich das Script von Basti.

Kleines Beispiel:
Deine tabelle heißt z.B. spiele_karten
und ist so aufgebaut

id->BIGINT
spiel->VARCHAR(20)
sitzplaetze->INT(10)
sitzplaetztepreis->VARCHAR(20)
stehplaetze->INT(10)
stehplaetzepreis->VARCHAR(20)

So

Erstmal werden die auswählbaren Spiele ausgelesen
Code: Alles auswählen
<select name="spiele" size="5" id="games" onChange="document.deinformular.submit();">
<?php
$games=mysql_query("select * from spiele_karten");
$games_anzahl=mysql_num_rows($games);
for($i=0;$i<$games_anzahl;$i++){
$games_array=mysql_fetch_row($games);
echo "<option value='".$games_array[0]."'>".$games_array[1]."</option>";
}
?></select>

So. Jetzt gibt dir $_POST['spiele'] die ID der Spalte aus. Jetzt musst ja nur noch das Script von Basti nehmen, da die ID anstelle des Spiels vergleichen, und schon hast die komplette Aufstellung.
Ich möchte wie mein Opa im Schlaf sterben und nicht heulend und schreiend wie sein Beifahrer.

Mentalisten sprechen Rabisch und sprengen den Geist
Fundamentalisten sprechen Arabisch und sprengen sich selbst

Von O. Kalkofe über die Urin Kellner Show
Labrar
Mitglied
 
Beiträge: 443
Registriert: 11.04.2007, 21:52
Wohnort: Ludwigsburg

Re: mysql abfragen :D

Beitragvon Guillermo am 16.02.2008, 14:10

hmm also das mit dem spiel auslesen und dann halt als dropdown ausgeben hab ich jetzt schon ,aber jetzt will ich die karten auslesen, ich habs so versucht, aber das geht nicht

$result=mysql_query(SELECT sitz, steh FROM spiele WHERE spiel="$spiel");

Kann ich eine Variable in den mysql befehl miteinbauen wie hier oder ist es deshalb falsch?

Hier mal mein code
Code: Alles auswählen
<?php include("mysql.php");?>

<?php
$anfrage = "SELECT spiel FROM spiele";
$sql=mysql_query($anfrage);

/*
while ($dz= mysql_fetch_object($sql)) {
echo $dz->spiel."<br>";
}
$anfrage2="SELECT spiel FROM spiele";
$sq=mysql_query($anfrage2);
?>
*/

<form method=post>
<select size=1 name=spielchen onChange="document.deinformular.submit();">

<?php
while ($ds = mysql_fetch_object($sq)) {
echo "<option value=".$ds->spiel.">".$ds->spiel."</option>";
}
?>
</select>

<?php
$spiel=$_POST[spielchen];

$result=mysql_query("SELECT sitz, steh FROM spiele WHERE id=$spiel");
$row=mysql_fetch_object($result);
$sitz=$row['sitz'];
$steh=$row['steh'];

echo "Beim Spiel <B>".$spiel."</B> sind ".$steh." Stehkarten und ".$sitz." Sitzkarten übrig;"
?>

<input type=submit value=Weiter>
</form>
Zuletzt geändert von Guillermo am 16.02.2008, 14:17, insgesamt 1-mal geändert.
Gebildet ist der, der weiß, wo er findet, was er nicht weiß.
Benutzeravatar
Guillermo
Mitglied
 
Beiträge: 486
Registriert: 01.10.2007, 18:18
Wohnort: Auerbach i.d.Opf

Re: mysql abfragen :D

Beitragvon Labrar am 16.02.2008, 14:16

So müsste es eine Fehlermeldung geben. Du musst den Query in Anführungszeichen packen
Ich möchte wie mein Opa im Schlaf sterben und nicht heulend und schreiend wie sein Beifahrer.

Mentalisten sprechen Rabisch und sprengen den Geist
Fundamentalisten sprechen Arabisch und sprengen sich selbst

Von O. Kalkofe über die Urin Kellner Show
Labrar
Mitglied
 
Beiträge: 443
Registriert: 11.04.2007, 21:52
Wohnort: Ludwigsburg

Re: mysql abfragen :D

Beitragvon Guillermo am 16.02.2008, 14:19

welchen query? ^^
Gebildet ist der, der weiß, wo er findet, was er nicht weiß.
Benutzeravatar
Guillermo
Mitglied
 
Beiträge: 486
Registriert: 01.10.2007, 18:18
Wohnort: Auerbach i.d.Opf

Re: mysql abfragen :D

Beitragvon Labrar am 16.02.2008, 14:22

Code: Alles auswählen
$query=mysql_query("Ich bin der Query");
Ich möchte wie mein Opa im Schlaf sterben und nicht heulend und schreiend wie sein Beifahrer.

Mentalisten sprechen Rabisch und sprengen den Geist
Fundamentalisten sprechen Arabisch und sprengen sich selbst

Von O. Kalkofe über die Urin Kellner Show
Labrar
Mitglied
 
Beiträge: 443
Registriert: 11.04.2007, 21:52
Wohnort: Ludwigsburg

Re: mysql abfragen :D

Beitragvon Guillermo am 16.02.2008, 14:24

Ja, das hab ich aber das geht auch net :(

Code: Alles auswählen
$spiel=$_POST[spielchen];

$result=mysql_query("SELECT sitz, steh FROM spiele WHERE spiel='$spiel'");
$row= mysql_fetch_object($result);
$sitz=$row["sitz"];
$steh=$row["steh"];


p.s. hast du icq oder msn?
Gebildet ist der, der weiß, wo er findet, was er nicht weiß.
Benutzeravatar
Guillermo
Mitglied
 
Beiträge: 486
Registriert: 01.10.2007, 18:18
Wohnort: Auerbach i.d.Opf

Re: mysql abfragen :D

Beitragvon Labrar am 16.02.2008, 14:24

Oder anderst

Mysqlbefehle werden im String abgearbeitet. Und Strings packt man in Anführungszeichen

Falsch:
Code: Alles auswählen
$query=mysql_query(SELECT * FROM TABELLE);

Richtig
Code: Alles auswählen
$query=mysql_query("SELECT * FROM TABELLE");
Ich möchte wie mein Opa im Schlaf sterben und nicht heulend und schreiend wie sein Beifahrer.

Mentalisten sprechen Rabisch und sprengen den Geist
Fundamentalisten sprechen Arabisch und sprengen sich selbst

Von O. Kalkofe über die Urin Kellner Show
Labrar
Mitglied
 
Beiträge: 443
Registriert: 11.04.2007, 21:52
Wohnort: Ludwigsburg

Re: mysql abfragen :D

Beitragvon Guillermo am 16.02.2008, 14:26

Ja genau so hab ich das jetzt, aber irgendwie will er die Variable im query nich annehmen oder is im den code was andres falsch?
Gebildet ist der, der weiß, wo er findet, was er nicht weiß.
Benutzeravatar
Guillermo
Mitglied
 
Beiträge: 486
Registriert: 01.10.2007, 18:18
Wohnort: Auerbach i.d.Opf

Re: mysql abfragen :D

Beitragvon Labrar am 16.02.2008, 14:27

?? Dann mach mal so
Code: Alles auswählen
$result=mysql_query("SELECT sitz, steh FROM spiele WHERE spiel='".$spiel."'");

Wenn das auch nicht geht, zeig mal deine Tabellenstruktur und sag wo $spiel herkommt.
PS:
Wenn $spiel eine Formularvariable ist dann wird bei dir zu 99% Sicherheit register_globals auf off stehen. Was auch gut ist.
Dann ändere das Script so ab
Code: Alles auswählen
$result=mysql_query("SELECT sitz, steh FROM spiele WHERE spiel='".$_POST['spiel']."'");
Ich möchte wie mein Opa im Schlaf sterben und nicht heulend und schreiend wie sein Beifahrer.

Mentalisten sprechen Rabisch und sprengen den Geist
Fundamentalisten sprechen Arabisch und sprengen sich selbst

Von O. Kalkofe über die Urin Kellner Show
Labrar
Mitglied
 
Beiträge: 443
Registriert: 11.04.2007, 21:52
Wohnort: Ludwigsburg

Re: mysql abfragen :D

Beitragvon Labrar am 16.02.2008, 14:28

Was willst du mit mysql_fetch_object ?????????
Ich möchte wie mein Opa im Schlaf sterben und nicht heulend und schreiend wie sein Beifahrer.

Mentalisten sprechen Rabisch und sprengen den Geist
Fundamentalisten sprechen Arabisch und sprengen sich selbst

Von O. Kalkofe über die Urin Kellner Show
Labrar
Mitglied
 
Beiträge: 443
Registriert: 11.04.2007, 21:52
Wohnort: Ludwigsburg

Re: mysql abfragen :D

Beitragvon Labrar am 16.02.2008, 14:30

Ah okay. war zu schnell. Ich hab gesehen wo $spiel herkommt
Code: Alles auswählen
$result=mysql_query("SELECT sitz, steh FROM spiele WHERE spiel='".$_POST["spielchen"]."'");
$row= mysql_fetch_array($result);
$sitz=$row["sitz"];
$steh=$row["steh"];


Auch POST Variablenbezeichner müssen in Anführungszeichen oder Hochkommata stehen ;)
Ich möchte wie mein Opa im Schlaf sterben und nicht heulend und schreiend wie sein Beifahrer.

Mentalisten sprechen Rabisch und sprengen den Geist
Fundamentalisten sprechen Arabisch und sprengen sich selbst

Von O. Kalkofe über die Urin Kellner Show
Labrar
Mitglied
 
Beiträge: 443
Registriert: 11.04.2007, 21:52
Wohnort: Ludwigsburg

Re: mysql abfragen :D

Beitragvon Guillermo am 16.02.2008, 14:32

Geil ok jetzt gehts, das einzige Problem ist , dass es noch nicht aktualisiert wenn ich ein andres spiel auswähle :(

edit: hast du icq oder msn???
Gebildet ist der, der weiß, wo er findet, was er nicht weiß.
Benutzeravatar
Guillermo
Mitglied
 
Beiträge: 486
Registriert: 01.10.2007, 18:18
Wohnort: Auerbach i.d.Opf

Nächste

Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast