Menüpunkt freischalten nur 3 mal möglich; dann SQL-Fehler
Hi Leute!
Ich mal wieder!
Mein Problem ist diesmal ganz komisch! Ich soll einen Produktkatalog entwerfen, der auch ohne hilfe eines Webmasters gewartet werden kann, d.h. soll auch ein Adminbereich rein! Soweit kein Problem. Das ganze läuft auf IIS-Server mit MySql und PHP 4.3.11!
Im Grunde geht es bei meinem Problem um die Navigation! Man soll die einzellnen Links aktivieren und deaktivieren können! Also man hat 6 Menügruppen in denen 11 Rubriken unterschiedlich aufgeteilt sind (mal 3 in einer Gruppe, mal 1 in einer Gruppe). Ich bin noch Anfänger was PHP mit MySQL angeht, also bitte kritisiert mich nicht wenn das ganze ein bisschen umständlich gemacht wurde.
Ich hab jetzt 2 Tabellen für die Navi erstellt:
Tabelle "rubriken":
rubrik_ID ist der Primary-Key und hat auto_increment. In rubrik_vis kommt nur entweder 1 oder 0 (aktiv oder inaktiv) und men_ID ist mit der spalte men_ID von folgender Tabelle "verbunden":
Tabelle "menu_visible":
men_ID ist der Primary-Key und hat auto_increment, men_value ist entweder 1 oder 0 (aktiv oder inaktiv)
Mein Problem ist nun (momentan hab ich nur das Aktivierungs-Script gemacht), dass ich nur 3 Links aktivieren kann, und danach bekomme ich nur die Fehlermeldung, dass mysql_fetch_array: supplied argument keine gültige MySQL-result-resource ist!
Zusätzliche angaben die zur schnelleren Fehlerfindung beitragen könnten:
Hier noch das Script:
Ich hoffe, dass das Problem einigermaßenb gut beschrieben ist, und dass sich irgendjemand, auch wenn der Post verdammt lang ist, damit auseinander setzt, denn ich bin bereits gewaltigst am verzweifeln!!
Danke im Vorraus
cya
nero_85
Hi Leute!
Ich mal wieder!
Mein Problem ist diesmal ganz komisch! Ich soll einen Produktkatalog entwerfen, der auch ohne hilfe eines Webmasters gewartet werden kann, d.h. soll auch ein Adminbereich rein! Soweit kein Problem. Das ganze läuft auf IIS-Server mit MySql und PHP 4.3.11!
Im Grunde geht es bei meinem Problem um die Navigation! Man soll die einzellnen Links aktivieren und deaktivieren können! Also man hat 6 Menügruppen in denen 11 Rubriken unterschiedlich aufgeteilt sind (mal 3 in einer Gruppe, mal 1 in einer Gruppe). Ich bin noch Anfänger was PHP mit MySQL angeht, also bitte kritisiert mich nicht wenn das ganze ein bisschen umständlich gemacht wurde.
Ich hab jetzt 2 Tabellen für die Navi erstellt:
Tabelle "rubriken":
Code:
rubrik_ID | rubrik_name | rubrik_name_e | rubrik_pic | men_ID | rubrik_vis
rubrik_ID ist der Primary-Key und hat auto_increment. In rubrik_vis kommt nur entweder 1 oder 0 (aktiv oder inaktiv) und men_ID ist mit der spalte men_ID von folgender Tabelle "verbunden":
Tabelle "menu_visible":
Code:
men_ID | men_name | men_value
men_ID ist der Primary-Key und hat auto_increment, men_value ist entweder 1 oder 0 (aktiv oder inaktiv)
Mein Problem ist nun (momentan hab ich nur das Aktivierungs-Script gemacht), dass ich nur 3 Links aktivieren kann, und danach bekomme ich nur die Fehlermeldung, dass mysql_fetch_array: supplied argument keine gültige MySQL-result-resource ist!
Zusätzliche angaben die zur schnelleren Fehlerfindung beitragen könnten:
- Das ganze wird in die Datei "admin.php" includet, welche wiederum in die "index.php" datei includet wird.
- Genannte "admin.php"-Datei beinhaltet die Verbindungsdaten zur Datenbank.
- Die ersten 3 mal haben die variable $_POST['add'] und die variable $add_ID den wert 1, 2 oder 3 danach bleibt sie leer.
Hier noch das Script:
PHP:
if(!isset($_POST['add'])){//abfrage ob das formular abgeschickt wurde; ist es noch nicht abgeschickt worden, dann...
echo "<form method='post' action='index.php?".$new_qs."&rel=1'><select name='add'";//start des formulars und des select-menüs
for($x = 0;$x < 6; $x++){//for-schleife für die sechs menükategorien
if($x == 1){
$optgroup_label="radialrollenlager";//definition des namens der optionsgruppe 1
}
elseif($x == 2){
$optgroup_label="axialrollenlager";//definition des namens der optionsgruppe 2
}
elseif($x == 3){
$optgroup_label="axialkugellager";//definition des namens der optionsgruppe 3
}
elseif($x == 4){
$optgroup_label="komb.-ax.-rad.-lager";//definition des namens der optionsgruppe 4
}
elseif($x == 5){
$optgroup_label="laufrollen";//definition des namens der optionsgruppe 5
}
elseif($x == 6){
$optgroup_label="sonstiges";//definition des namens der optionsgruppe 6
}
echo "<optgroup label='".$optgroup_label."'>";//start der optionsgruppe
$sql_add_rub_list="SELECT * FROM rubriken WHERE rubrik_vis='0' AND men_ID=".$x;//anweisung zum auslesen der unaktivierten rubriken aus der datenbank
$add_rub_list_result=mysql_query($sql_add_rub_list);//ausführen der oben angeführten anweisung
while($arl_r=mysql_fetch_array($add_rub_list_result)){//while-schleife weil mehrere ergebnisse erwartet werden
echo "<option value='".$arl_r['rubrik_ID']."'>".$arl_r['rubrik_name']."</option>";//definition der werte und der namen der auswahlpunkte
}
echo "</optgroup>";//ende der optionsgruppe
}
echo "</select><input type='submit' value='".$submit_freischalt."'></form>";//ende des select-menüs; button zum abschicken des formulars; ende des formulars.
}
elseif(isset($_POST['add'])){//abrage ob das formular abgeschickt wurde; ist es abgeschickt worden, dann...
$add_ID=$_POST['add'];//übernehmen des wertes aus dem formular und übergabe in die variable "$add_ID"
$SQL_cont_vis_men="SELECT * FROM menu_visible,rubriken WHERE rubriken.men_ID=menu_visible.men_ID AND rubriken.rubrik_ID=".$add_ID;//anweisung zum auslesen aller rubriken die die rubrik_ID von $add_ID haben und die gleiche men_ID haben
$cont_vis_men_result=mysql_query($SQL_cont_vis_men);//ausführen der oben angeführten anweisung
$cvm_r=mysql_fetch_array($cont_vis_men_result);//anweisungsergebnis in array packen
if($cvm_r['men_value'] == "0"){
$SQL_set_menu_visible="UPDATE menu_visible SET men_value='1' WHERE men_ID=".$cvm_r['men_ID'];
$set_menu_visible_result=mysql_query($SQL_set_menu_visible);
if($set_menu_visible_result){
echo "";
}
else{
die("FATAL ERROR: could'nt make menu visible on line <b>60</b> in <b>inh_admin/rubrik_add.php<b>");
}
}
$SQL_set_rubrik_visible="UPDATE rubriken SET rubrik_vis='1' WHERE rubrik_ID=".$add_ID;
$set_rubrik_visible_result=mysql_query($SQL_set_rubrik_visible);
if($set_rubrik_visible_result){
echo "";
}
else{
die("FATAL ERROR: could'nt make rubric visible on line <b>72</b> in <b>inh_admin/rubrik_add.php<b>");
}
}
Ich hoffe, dass das Problem einigermaßenb gut beschrieben ist, und dass sich irgendjemand, auch wenn der Post verdammt lang ist, damit auseinander setzt, denn ich bin bereits gewaltigst am verzweifeln!!


Danke im Vorraus
cya
nero_85
Zuletzt bearbeitet: