[PHP] Wert an DB übergeben.

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Shuba, 14. September 2011 .

Schlagworte:
  1. 14. September 2011
    Wert an DB übergeben.

    Folgendes.

    Möchte per Button in PHP nen Script ausführen, dass nen DB-Eintrag hochzählt. Dafür hab ich folgendes.

    HTML:
     <form method="post" target="_self"> 
     <button type="submit" name="vote" value="<?php echo ($t1['ID']);?>">Ass on the left</button> 
     <button type="submit" name="vote" value="<?php echo ($t2['ID']);?>">Ass on the right</button> 
     </form>
    und bei PHP so

    PHP:
         // Anzahl der Bilder
        
    $r2  mysql_query ( "SELECT * FROM Votes" );
        
    $anzahl  mysql_num_rows ( $r2 );
        
    $anzahlbilder  76 ;
        
    //////////////////////////////////////////////////////////////////////////////////////
        
        
    if( $anzahl  $anzahlbilder ){
            for(
    $i  $anzahlbilder $i  $anzahl $i ++){
                
    $sql0  "INSERT INTO `skyrim1337`.`Votes` (`ID`, `Votes`) VALUES (NULL, \'0\'), " ;
            }
        }
        
        
    // Auswahl der 2 Zufallsbilder
        
    do{
            
    $bildIDOne = rand ( 1 , $anzahl );
            
    $bildIDTwo = rand ( 1 , $anzahl );
        }
        while(
    $bildIDOne  ==  $bildIDTwo );


        
    $sql1  'SELECT ID FROM Votes WHERE ID = '  . $bildIDOne ;
        
    $sql2  'SELECT ID FROM Votes WHERE ID = '  . $bildIDTwo ;

        
        
    $bild1  mysql_query ( $sql1 );
        
    $bild2  mysql_query ( $sql2 );
        
        
        if ( 
    false  ==  $bild1 )
            die(
    "SQL:  $sql1  "  .   mysql_error ());
        
        if ( 
    false  ==  $bild2 )
            die(
    "SQL:  $sql2  "  .   mysql_error ());

        
    $t1  mysql_fetch_array $bild1 );
        
    $t2  mysql_fetch_array $bild2 );
        
        
    //print_r($t1);
        
        

            

    ?>  
    allerdings wirds in der db nicht hochgezählt und ich weiß nich woran das liegt

    meine datenbank heißt skyrim1337 und meine tabelle Votes. und die spalte die hochgezählt werden soll auch Votes.

    ich denk mal es liegt daran, dass ich nich eingebe welche ID da genommen ewrden soll oder?!



    Wie übergebe ich die ID denn?! Ist ja immer eine andere. Und immer zwei verschiede. :angry:
     
  2. 14. September 2011
    AW: Wert an DB übergeben.

    PHP:
         if( $anzahl  $anzahlbilder ){ 
            for(
    $i  $anzahlbilder $i  $anzahl $i ++){ 
                
    $sql0  "INSERT INTO `skyrim1337`.`Votes` (`ID`, `Votes`) VALUES (NULL, \'0\'), "
            } 
        } 
    $anzahl = 20;
    $anzahlbilder = 76;

    PHP:
         if( 20  76 ){  // Passt er geht weiter zur For-Schleife
            
    for( $i  76 $i  20 $i ++){  // Setze $i = 76 und führe Schleife aus, solange $i kleiner als 20 ist
                
    $sql0  "INSERT INTO `skyrim1337`.`Votes` (`ID`, `Votes`) VALUES (NULL, \'0\'), "
            } 
        } 
    $i ist aber nie kleiner als 20..
    Und wenn das andersrum ist, also $anzahl ist größer als $anzahlbilder geht er gar nicht bis zur for-schleife..

    MfG
     
  3. 14. September 2011
    AW: Wert an DB übergeben.

    Sorry, hab den falschen Code-Abschnitt gescickt. Den du da siehst war nur ein Versuch automatisch Datenbankeinträge zu generieren. -.-

    Sorry,

    hier ist der richtige Abschnitt

    PHP:
    $voting  $_POST [ 'vote' ];
        if (
    $_POST [ 'vote' ]) {
                
    $sql1337  'UPDATE Votes Set Votes = Votes +1 WHERE ID = $voting'
                
    $res  mysql_query ( $sql1337 );
        }

    Nochmal was rumprobiert. So läuft es auch nicht :x

    PHP:
    $sql1337  "UPDATE Votes SET Votes = Votes + 1 WHERE ID='" . $voting . "'" ;
     
  4. 15. September 2011
    AW: Wert an DB übergeben.

    PHP:
    $sql1337  'UPDATE Votes Set Votes = Votes +1 WHERE ID = $voting'
    das kann nicht funktionieren.

    bitte lesen:
    PHP: Strings - Manual

    PHP:
    $sql1337  "UPDATE Votes SET Votes = Votes + 1 WHERE ID='" . $voting . "'"
    sollte funktionieren, ist aber unsicher. und dass du jetzt zwar die richten anführungszeichen verwendest, aber die variable dennoch über den concat-operator einbindest lass ich mal unkommentiert.

    bitte lesen:
    PHP: SQL Injection - Manual

    ------

    zum problem:
    PHP: var_dump - Manual

    wenn du alle drei links gelesen und verstanden hast, kannst du gerne wieder
    kommen und das thema schließen
     
  5. 15. September 2011
    AW: Wert an DB übergeben.

    Jap, Thema kann geschlossen werden. Ich mach gerade aber weiter. Und zar möchte ich zwei Bilder anhand ähnlichem Elo-Wert auswählen. Also das erste Bild wird zufällig geladen und das zweite soll dann nen ungefähr gleichen Elo-Wert haben.

    Würde dieser Code dafür hier funktionieren?

    PHP:
    $bildIDOne = rand ( 1 , $anzahl );

    $sqlx  "SELECT elo FROM VOTES WHERE ID =" . $bildIDOne . "" ;
    $sqly  "SELECT ID From Votes WHERE elo > elo_" . $bildIDOne . " AND elo < elo_" . $bildIDOne . "  > 500" ;

    $bild2  mysql_query ( $sqly );  
    Bin nämlich gerade in der Uni und kanns nicht austesten.
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.