php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 16-03-2005, 10:56
darksaber999
 Newbie
Links : Onlinestatus : darksaber999 ist offline
Registriert seit: Mar 2005
Beiträge: 37
darksaber999 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Problem mit Übergabe von Variablen mit 2 MySQL Tabellen

Hallo alle,
erstmal ein Lob für eure tolle Seite, ich habe hier schon viele Tips gesehen, die mir geolfen haben, und auch Lösungen zu Problmen.

Leider habe ich jetzt Problem, was hier noch nicht besprochen wurde:

Ich habe 2 MySQL Tabellen (SCHTermine und SCHKursreihe).Ich möchte ein Formular schreiben, welches Daten zu der Tabelle SCHTermine hinzufügt. 2 Felder der beiden Tabellen haben den gleichen Inhalt(Zahlenwerte), und deshabl wäre es einfacher(und logischer) diese einfach per Formular mit zu Übergeben. Diese Felder sind "Nr" (Primärschlüssel von SCHKursreihe) und "Kurse". Also dachte ich, dass es das beste sei "Nr" per DropDown Leiste auszuwählen, und das Formular fügt im Hintergrund "Kurse" hinzu. Die DropDown Leiste habe ich schon hinbekommen, dass der andere Wert mit hinzugefügt wird nicht Jetzt aber genug gequasselt, hier ist der Code vom Formular :

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);


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


        echo 
"<select name='kursreihe' size='1'>\n";
          foreach(
$arr[0] as $value)
            {
              echo 
"<option value=".$value.">".$value."</option>\n";
            }
        echo 
"</select>Kursreihe<p>\n";

        echo 
"Kurs: $kurs<p>\n";
  } 
Und das ist der Code der Class:
PHP-Code:
function neuerdatensatz$kursreihe$kurs$von$bis){

      
$kurs   " $this->get Kurs by Kursreihe ($kursreihe)";

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

Ich hoffe ihr könnt mir helfen sitzte jetzt fast 10Stunden an diesem Problem

mfg darksaber999
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 16-03-2005, 11:19
vukodlac
 Newbie
Links : Onlinestatus : vukodlac ist offline
Registriert seit: Oct 2004
Beiträge: 44
vukodlac ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Habe das irgendwie nicht verstanden, wo bitte willst du den Wert hinzufügen? in der DropDown als value zu einem bestehenden oder als neues wertepaar in der dropdown
Mit Zitat antworten
  #3 (permalink)  
Alt 16-03-2005, 11:22
darksaber999
 Newbie
Links : Onlinestatus : darksaber999 ist offline
Registriert seit: Mar 2005
Beiträge: 37
darksaber999 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Sorry, habe mich wohl etwas seltsam ausgedrückt .
Also in der DrobDown Leiste steht der Primärschlüssel(Nr) als value, der wird auch korrekt übergeben. Aber Wert "Kurs" leider nicht.
Es gibt auch keine Fehlermeldung.

mfg
darky999
Mit Zitat antworten
  #4 (permalink)  
Alt 16-03-2005, 11:29
vukodlac
 Newbie
Links : Onlinestatus : vukodlac ist offline
Registriert seit: Oct 2004
Beiträge: 44
vukodlac ist zur Zeit noch ein unbeschriebenes Blatt
Standard

woher soll er auch den wert haben du liest doch nur den key aus
PHP-Code:
  foreach($arr[0] as $value)
            {
              echo 
"<option value=".$value.">".$value."</option>\n";
            } 
vielleicht sollte es so gehn damit auch das value ausgelesen wird
PHP-Code:
  foreach($arr[0] as $key => $value)
            {
              echo 
"<option value=".$key.">".$value."</option>\n";
            } 
Mit Zitat antworten
  #5 (permalink)  
Alt 16-03-2005, 11:33
darksaber999
 Newbie
Links : Onlinestatus : darksaber999 ist offline
Registriert seit: Mar 2005
Beiträge: 37
darksaber999 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke erstmal, aber leider klappt das so auch nicht.

Wie gesagt, ich möchte sowohl "Nr" als auch "Kurs" übergeben. Die "Nr" suche ich mit der DropDown Leiste aus, und im Hintergrund soll das formular den entsprechenden "Kurs" raussuchen und hinzufügen.

mfg
darky999
Mit Zitat antworten
  #6 (permalink)  
Alt 16-03-2005, 11:40
vukodlac
 Newbie
Links : Onlinestatus : vukodlac ist offline
Registriert seit: Oct 2004
Beiträge: 44
vukodlac ist zur Zeit noch ein unbeschriebenes Blatt
Standard

mh dann mach das doch so

echo "<option value='".$key."|".$value."'>".$value."</option>\n"

musst es dann nur in deine function neuerdatensatz(...)

wieder trennen oder habe ich dich immernoch falsch verstanden
Mit Zitat antworten
  #7 (permalink)  
Alt 16-03-2005, 12:06
darksaber999
 Newbie
Links : Onlinestatus : darksaber999 ist offline
Registriert seit: Mar 2005
Beiträge: 37
darksaber999 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Vielleicht eine etwas dumme Frage, aber was ist $key überhaupt für eine Variable? Und wie trenne ich die das dann wieder? Sorry, ich mach erst seit 2-3 Wochen was mit PHP und MySQL

SCHKursreihe sieht so aus:

Nr Kurse
1 101
2 102
3 103
4 120
5 105

Und wenn ich in der DropDown Leiste "4" auswähle, soll im Hintergrund die Variable für Kurse(also 120) mit übermittelt werden.

mfg
darksaber999
Mit Zitat antworten
  #8 (permalink)  
Alt 16-03-2005, 13:44
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Wenn du dir sicher bist, dass es $arr[0] im foreach sein soll und nicht $arr, dann machst du das zum Beispiel so:
PHP-Code:
foreach($arr[0] as $key => $value)
{
    echo 
"<option value=".$key.$div.$value.">".$value."</option>\n";

wobei $div ein Trennzeichen ist, dass nie in Nr bzw. Kurs vorkommt und $key der Key das Arrayeintrags $value. RTFM(foreach);

Mal was anderes: Du hast eine Tabelle SCHKursreihe mit

Nr Kurse Foo
1 101 bar
2 120 null
...

und der User soll über o.g. Formular Kurse zu seinen Terminen hinzufügen können. Dazu hast du eine Tabelle SCHTermine mit

Nr Kurse Blah
4 400 blub
1 101 blab
...

Brauchst du SCHTermine.Kurse unbedingt? Kannst du das nicht über einen JOIN mit SCHKursreihe bekommen? Dann brauchst du im Formular nämlich auch nur noch einen Wert übergeben.
Mit Zitat antworten
  #9 (permalink)  
Alt 16-03-2005, 14:01
darksaber999
 Newbie
Links : Onlinestatus : darksaber999 ist offline
Registriert seit: Mar 2005
Beiträge: 37
darksaber999 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke erstmal an auch beide!
Aber ein kleine Frage habe ich da noch

Als Value übergebe ich jetzt "$key" und "$value", wie kann ich die dann wieder trennen, so dass ich beide Werte nutzen kann

btw: $arr[0] ist für "Nr" und $arr[2] ist für "Kurs"

mfg
darksaber999
Mit Zitat antworten
  #10 (permalink)  
Alt 16-03-2005, 14:44
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Dann bist du eh auf'm falschen Dampfer. Wenn $arr[0] die Nr und $arr[2] der Kurs ist, dann muß $arr selbst Element eines Arrays sein, damit hier was mit foreach geht.

Beispiel:
PHP-Code:
$super_arr = array(
  array(
'1''foo''101'),
  array(
'2''bar''120'),
  ...
);

foreach (
$super_arr as $arr)
{
    echo 
"<option value=".$arr[0].$div.$arr[2].">".$arr[2]."</option>\n";

Nach der Übergabe nimmst du es mit explode($div, $_POST['kursreihe']) auseinander.

Ich weise aber nochmals darauf hin, dass deine DB schlecht designed ist und du außerdem http://www.php.net/manual/en/control...es.foreach.php lesen solltest.
Mit Zitat antworten
  #11 (permalink)  
Alt 16-03-2005, 14:51
darksaber999
 Newbie
Links : Onlinestatus : darksaber999 ist offline
Registriert seit: Mar 2005
Beiträge: 37
darksaber999 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das Array rufe ich auch aus einer Class auf. Ich poste einfach mal den Code dazu:
PHP-Code:
    function listen_arr($auswahl){
      if (!
$auswahl)
        
$sql "select * from ".$this->tbname" order by " Nr ." asc" ;
      else
        
$sql "select * from ".$this->tbname." where nr = $auswahl" ;

      if (
$this->debug)
        echo 
$sql."<br>" ;

      
$this->result mysql_query$sql ) or
           die ( 
"Fehler bei der Abfrage: ".mysql_error() );

      while (
$arr $this->fetch_row()){
          
$res[0] = array_merge$res[0], $arr[0] ) ;
          
$res[2] = array_merge$res[2], $arr[2] );
        }

      return ( 
$res ) ;

    } 
Mit Zitat antworten
  #12 (permalink)  
Alt 16-03-2005, 15:14
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Lass dir mal ausgeben, was listen_arr() zurückgibt.
Mit Zitat antworten
  #13 (permalink)  
Alt 16-03-2005, 15:25
darksaber999
 Newbie
Links : Onlinestatus : darksaber999 ist offline
Registriert seit: Mar 2005
Beiträge: 37
darksaber999 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Der gibt nur folgendes aus:

PHP-Code:
echo "Liste: $kursreihe->listen_arr($auswahl)<p>\n"
Array

Das finde ich jetzt zumindest komisch

mfg
darksaber999
Mit Zitat antworten
  #14 (permalink)  
Alt 16-03-2005, 15:37
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Arrays gibt man so auch nicht aus. Versuchs mit
PHP-Code:
echo "<pre>";
print_r($kursreihe->listen_arr($auswahl));
echo 
"</pre>"
Wundern wirst du dich dann aber immernoch.
Mit Zitat antworten
  #15 (permalink)  
Alt 16-03-2005, 15:43
darksaber999
 Newbie
Links : Onlinestatus : darksaber999 ist offline
Registriert seit: Mar 2005
Beiträge: 37
darksaber999 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Oh, sorry bin halt dumm

jetzt gibt der mir folgendes aus:

Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)

[2] => Array
(
[0] => 101
[1] => 102
[2] => 103
[3] => 120
[4] => 105
)

)

Das sind die richtigen Angaben richtig.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

Microweber CMS

Open source, drag and drop website builder

13.01.2020 Berni | Kategorie: HTML5/ EDITOR
PhoneGap Apps mit JS, CSS3 und HTML5 erstellen ansehen PhoneGap Apps mit JS, CSS3 und HTML5 erstellen

PhoneGap, Framework zur Erstellung hybrider Applikationen für mobile Endgeräte.

13.01.2020 Berni | Kategorie: App-Entwicklung
Bo)Tickets

Bo)Tickets bietet Ihnen eine Schnittstelle für Kundenanfragen an. In dem Script definieren Sie Supportbereiche, also zum Beispiel „Technik, Buchhaltung, Support“. Ihre Kunden können dann über ein Formular eine Anfrage abschicken.

31.12.2019 bocombo | Kategorie: PHP/ Ticketsystem
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:49 Uhr.