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, 11: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, 12: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, 12: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, 12: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, 12: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, 12: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, 13: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, 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

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, 15: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, 15: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, 15: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, 16: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, 16: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, 16: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, 16: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

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

21.10.2020 Berni | Kategorie: PHP/ Anzeigenmarkt
Sendeplan Script inkl. Wunsch- und Grußbox + Kick-System + Bewerbungssystem

Das professionelle Sendeplan PHP Script inkl. Wunsch- und Grußbox + Kick-System für dein Webradio. Der übersichtliche Sendeplan bietet deinen Moderatoren und Zuhörern die perfekte Übersicht der aktuellen Shows! Du kannst nicht nur Sendungen eintragen, s

20.10.2020 drcomputer | Kategorie: PHP/ Web Radio
Newsmanager 2

Der Newsmanager 2 ist sehr Vielfältig und kann News schreiben, Newsletter versenden und RSS Feeds in einem erzeugen.

20.10.2020 Stephan_1972 | Kategorie: PHP/ News
 Alle PHP Scripte anzeigen

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