PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Problem mit Übergabe von Variablen mit 2 MySQL Tabellen (https://www.php-resource.de/forum/php-developer-forum/51968-problem-mit-ubergabe-von-variablen-mit-2-mysql-tabellen.html)

onemorenerd 16-03-2005 15:48

Ähm ich wollte das gar nicht wissen - du sollst es DIR ausgeben lassen, um zu sehen wie die foreach-Schleife gebaut werden muß bzw. was in der listen_arr() falsch ist.

Wieso überdenkst du eigentlich nicht erstmal deine DB-Struktur?

darksaber999 17-03-2005 09:23

Hallo nochmal,
ich möchte mich erstmal dafür bedanken, dass ihr euch soviel Zeit für mich genommen habt, und auch den Kopf über meine Probleme zerbricht :)

Also ich sollte vielleicht noch sagen, dass ich mir selbst PHP angelesen habe durch das Buch von Galileo Computing "PHP 4 Webserver-Programmierung für Einsteiger". Da wird nur in einer Übersichttabelle der Befehl "join" erklärt.

Aber ich sollte vielleicht meine Tabellen weiter erklären.
SCHTermine hat 5 Felder:
Nr -> Autoinc
Kurs -> Kurs aus SCHKursreihe
Kursreihe -> Nr aus SCHKursreihe
Von
Bis

SCHKursreihe hat 4 Felder
Nr -> Autoinc -> Für Kursreihe in SCHTermine
Kursreihe
Kurs -> Für Kurs in SCHTermine
Bezeichnung

Hab ich euch jetzt richtig verstanden? Mit "join" ist das möglich? Ok ich probiere das jetzt mal aus, dann melde ich mich nochmal.

mfg
darksaber999

darksaber999 18-03-2005 09:52

Also mit Join haut das überhaupt nicht hin, und ich bin wieder auf meinen alten kurs zurück gegangen.

PHP-Code:

        echo "<select name='kursreihe' size='1'>\n";
        
$anzahl sizeof$arr[0]);
        for (
$i=0;$i<$anzahl$i++){
          echo 
"<option value='".$arr[0][$i]."'>".$arr[2][$i]."</option>\n";
        }
        echo 
"</select>Kursreihe<p>\n"

Im Quelltext steht jetzt auch das Richtige als Value, und im Auswahl-Bereich:

Code:

<select name='kursreihe' size='1'>
<option value='101'>1</option>
<option value='102'>2</option>
<option value='103'>3</option>
<option value='120'>4</option>
<option value='105'>5</option>
</select>Kursreihe<p>

Jetzt möchte sowohl das Value, als auch die "Auswahl-Nr" übergeben, also wenn ich in der DropDown-Leiste "4" auswähle, soll sowohl "4" als auch "120" übergeben werden.

Ich dachte, es würde folgender Maßen gehen:
PHP-Code:

      $termin->neuerdatensatz$GLOBALS[$arr[0][$i]], $GLOBALS[$arr[1][$i]],
                               
$GLOBALS["von"], $GLOBALS["bis"]); 

Dann soll in der Class folgendes ankommen:
PHP-Code:

    function neuerdatensatz$kursreihe$kurs$von$bis){

      
$sqlab  " insert ".$this->tbname." ( Kursreihe, Kurs, Von, Bis )  ";
      
$sqlab .= " values ( '".$kursreihe."' , '".$kurs."' , '".$von."', '".$bis."')";



      if (
$this->debug)
        echo 
$sqlab."<br>";
      
$this->result mysql_query$sqlab 

Leider bleiben im Moment die beiden Felder 'Kursreihe' und 'Kurs' leer.

Seid ihr nochmal so lieb und helft mir?

mfg
darksaber999

asp2php 18-03-2005 10:06

Zitat:

Original geschrieben von darksaber999

Jetzt möchte sowohl das Value, als auch die "Auswahl-Nr" übergeben, also wenn ich in der DropDown-Leiste "4" auswähle, soll sowohl "4" als auch "120" übergeben werden.

Nein, bei select-Tag wird value gesendet, wenn value-Angabe aber nicht existiert, dann den Text. Beides nicht. Es sei denn du nimmst JS, liest die Werte in Value und Text aus und schreibst sie in hidden-Felder, dann werden sie über die hidden-Felder gesendet. Aber was soll denn der Unfug. Eine Relation zwischen value und Text hast du doch irgendwo, denn sonst kann du die Liste ja nicht aufbereiten. Also überlege nochmals was du machst.

darksaber999 18-03-2005 10:42

OK, aber was sind "JS" ? Ich kenn mich mit den "Insider"-Abkürzungen noch nicht aus ;)

mrhappiness 18-03-2005 10:47

JavaScript

darksaber999 21-03-2005 16:29

Hallo, ich bins nochmal :)
Jetzt habe ich den Code einwenig abgeändert(aber ohne JS, denn das kann ich nicht ;) ):
PHP-Code:

  function termine_anlegen(){

    require_once ( 
"opendb.inc.php" ) ;
    require_once (
"class/classkursreihe.inc.php");
    
$kursreihe = new dbkursreihe$GLOBALS["db"] ) ;

    
$arr $kursreihe->listen_arr($auswahl);

    
error_reporting(E_ALL);
    echo 
"<p>Fehler:".error_reporting(E_ALL)."<p>";


    echo 
"\n<p>Geben Sie einen vollständigen Datensatz ein und senden Sie das Formular ab:\n";
  

echo 
"<form  method='post' action=termine.php?show=".$arr[0][$i].">";

        echo 
"<select name='kursreihe' size='1'>\n";
        
$anzahl sizeof$arr[0]);
        for (
$i=0;$i<$anzahl$i++){
          echo 
"<option value='".$arr[0][$i]."'>".$arr[2][$i]."</option>\n";
        }
        echo 
"</select>Kursreihe<p>\n";


        echo 
"</form>\n";


        echo 
"<form action = 'termine.php?id=8' method = 'post'>\n";

        echo 
"<input name='von'>Von (Form: JJJJ-MM-TT SS:MM)<p>\n";
        echo 
"<input name='bis'>Bis (Form: JJJJ-MM-TT SS:MM)<p>\n";

        echo 
"<input type='Submit' name='gesendet'\n";
        echo 
"<input type='reset'>\n";

      echo 
"</form>\n"

Aber jetzt bekomme ich folgenden Fehler:
Code:

Notice: Undefined variable: i in /srv/www/praktikant/schulung/termine.php on line 221

Notice: Undefined index: in /srv/www/praktikant/schulung/termine.php on line 221

Das ist beim ersten <form>. Aber versteh nicht warum die undefiniert ist, es wird doch das Array aufgerufen am Anfang.

mfg
darksaber999

wahsaga 21-03-2005 16:48

Zitat:

Original geschrieben von darksaber999
Aber versteh nicht warum die undefiniert ist, es wird doch das Array aufgerufen am Anfang.
*seufz*

wo bitte ist zu dem zeitpunkt, wo du
PHP-Code:

echo "<form  method='post' action=termine.php?show=".$arr[0][$i].">"

stehen hast, $i definiert ...?

darksaber999 21-03-2005 16:58

...OK, gutes Argument :D
Aber wie bekomme ich 2 forms sonst unter, wenn nicht nacheinander? Ineinander geht nicht, schon probiert.

Falls das eine dumme Anfängerfrage sein sollte, tut es mir Leid, aber ich habe PHP nur aus Büchern gelernt, namentlich:

PHP4 Webserver-Programmierung für Einsteiger von Galileo Computing

und zum zusätzlichen nachschlagen habe ich:

php 4 dynamische webauftritte professionell realisieren von Markt & Technik


mfg
darksaber999


edit: Das ist jetzt auch einwenig anders von mir gedacht. In der DropDown-Leiste suche ich noch immer die Nr aus, dann soll aber die Seite neugeladen werden, und die das Value soll schon mal zwischengespeichert, damit es später als Variable verarbeitet werden kann.

onemorenerd 22-03-2005 07:04

Entweder eine Datei, um die Select-Box auszugeben und eine zweite, an die die Daten gesendet werden oder beides in einem Script mit
PHP-Code:

if (!isset($_POST['kursreihe'])) {
    
// Form 1 ausgeben
} else {
    
// Form 2 ausgeben



darksaber999 23-03-2005 11:51

Hallo, ich bins schon wieder :)

Ich habe mal im PHP-Handuch nachgesehen, was if(!isset..) bewirkt. Wenn das richtig verstanden habe, dann überprüft das, ob eine Variable gesetzt ist, und setzte diese dann auf 'true'. Aber was brinkt mir das bei meinem Problem? Das die zweite Variable nicht ist, weiß ich auch so ;)

Naja, gestern kam der Chefprogrammierer (bin ja nur Praktikant und arbeite an diesem Programm, was nicht(!) kommerziel genutzt wird, da es nur eine Übung ist :) ) ausnahmsweise mal rein... und sagt mir, dass es auch Blödsinn sei, was ich da mach. (Kursreihe)Nr soll doch gar nicht auf (Termine)Kursreihe verweisen, sondern (Kursreihe)Kursreihe auf (Termine)Kursreihe. Dabei hat er extra auf einen Zettel dass (Termine)Kursreihe die Nr der (Kursreihe) ist,...aber egal :)

Also hat sich die Tablle folgend verändert:

SCHTermine hat 5 Felder:
Nr -> Autoinc
Kurs -> Kurs aus SCHKursreihe
Kursreihe -> Kursreihe aus SCHKursreihe
Von
Bis

SCHKursreihe hat 4 Felder
Nr -> Autoinc
Kursreihe -> Für Kursreihe in SCHTermine
Kurs -> Für Kurs in SCHTermine
Bezeichnung

In Kursreihe steht drin, ob der Kurs im Frühjahr, Sommer, usw. stattfindet. Denn der Kurs 105 im Frühjahr ist auch der Kurs 105 im Sommer. Somit hat ganze jetzt auch endlich mehr Sinn erhalten ;)

mfg
darksaber999

darksaber999 23-03-2005 15:15

Ich habe mich eurem Rat angeschlossen, und dem Chef mal gesagt, dass die Tabellenstruktur nicht gut gewählt ist. Er war zuerst beleidigt(war schließlich seine Idee), dann hat er aber eingesehen, dass die Tabellen schlecht designed sind.

Jetzt habe ich hier eine (beinah) ganz andere Bedingungen, die sogar für mich Lösbar erscheinen :D

Ich möchte mich bei allen bedanken, die mir geholfen haben :beer:

mfg
darksaber999

PS: Wenn ich wieder mal Hilfe brauche, werde ich mich wieder an euch wenden, und wenn ich sehen, dass jemand ein Problem hat und ich dazu die Lösung erkenne, dann werde ich diesem jemand auch helfen ;)


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:55 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG