2016-05-09 8 views
1

verwendet Ich versuche, eine E-Mail von einer bestimmten Reihe oder von der Tabelle id_code von people Tabelle zu holen ... das heißt, gebe ich ein id_code = 456 ein, wenn der Identifikationscode das existiert E-Mail mit dem spezifischen Namen id_code muss abgerufen werden und eine Token-Nummer generieren und die Token-Nummer in die People-Tabelle einfügen. Nachdem das Token generiert und eingefügt wurde, muss ein URL-Link mit dem Token und einer ID gesendet werden.wie man Daten von der Tabelle holt, die php und mysql

Wie würde ich das tun, da ich ein Anfänger bin, kann mir jemand sagen, wo ich falsch liege? Hier

ist, was ich tat so weit:

<?php 
    error_reporting(1); 
    session_start(); 

    include 'includes/db.php'; 
    include 'includes/token.php'; 

    //global 
    $id_code = strtoupper(trim($_POST['id_code'])); 

    if ($_POST["Submit"] == "Submit") { 
     $sql = "SELECT * FROM people WHERE id_code = :id_code"; 
     $stmt = $pdo->prepare($sql); 
     $stmt->bindValue(':id_code', $id_code); 
     $stmt->execute(); 
     $result = $stmt->fetch(PDO::FETCH_ASSOC); 
     if (!empty($_POST['id_code'])) { 
      $sql = "SELECT email FROM people WHERE id_code = $id_code"; 

      $stmt = $pdo->prepare($sql); 
      $stmt->bindValue(':id_code', $id_code); 
      $stmt->execute(); 
      $result2 = $stmt->fetch(PDO::FETCH_ASSOC); 
     } else { 
      //echo "<br/>Validated: FALSE<br/>"; die(); 
      echo 'You are not Registered..Please Contact support'; 
     } 
    } 
?> 
+0

Was ist id_code in Ihrer Tabelle? die ID der Person oder die ID der Nachricht? –

Antwort

0

Verwenden korrigieren zu für die zweite Abfrage-Bindung (Sie $ id_code zugewiesen haben)

if (!empty($_POST['id_code'])) { 
     $sql = "SELECT email FROM people WHERE id_code = :id_code"; 

     $stmt = $pdo->prepare($sql); 
     $stmt->bindValue(':id_code', $id_code); 
     echo $email; 
     $stmt = $pdo->prepare($sql); 
1

Soweit ich sehen kann $id_code nicht definiert ist . Der Wert, den Sie verwenden möchten, ist in $_POST['id_code'] gespeichert, also sollten Sie etwas wie $id_code = $_POST['id_code']; vor Ihrer IF-Bedingung tun, sonst ist $id_code nicht definiert.

Update: Sie haben es bereits mit $ccode, verwenden Sie dies für die Bindung und es sollte funktionieren.

$stmt->bindValue(':id_code', $id_code); 

von

ersetzt
$stmt->bindValue(':id_code', $ccode); 

UPDATE

bitte folgenden Code versuchen, und das Ergebnis der var_dump Post():

<?php 
    error_reporting(1); 
    session_start(); 

    include 'includes/db.php'; 
    include 'includes/token.php'; 

    //global 
    $id_code = strtoupper(trim($_POST['id_code'])); 

    var_dump("ID: ".$id_code); 

    if ($_POST["Submit"] == "Submit") { 
     $sql = "SELECT * FROM people WHERE id_code = :id_code"; 
     $stmt = $pdo->prepare($sql); 
     $stmt->bindValue(':id_code', $id_code); 
     $stmt->execute(); 
     $result = $stmt->fetch(PDO::FETCH_ASSOC); 

     var_dump("Result: ".$result); 

     if (!empty($_POST['id_code'])) { 
      $sql = "SELECT email FROM people WHERE id_code = $id_code"; 

      $stmt = $pdo->prepare($sql); 
      $stmt->bindValue(':id_code', $id_code); 
      $stmt->execute(); 
      $result2 = $stmt->fetch(PDO::FETCH_ASSOC); 

      var_dump("Result2: ".$result2); 

     } else { 
      //echo "<br/>Validated: FALSE<br/>"; die(); 
      echo 'You are not Registered..Please Contact support'; 
     } 
    } 
?> 

Sie keine Ausgabe erhalten Sie von Ihrem Skript?

+0

Ich habe einen Tippfehler gemacht, der Code sollte $ idcode = strtoupper (trim ($ _ POST ['id_code'])) sein; und ich habe es global gemacht..wie bekomme ich die E-Mail sagen [email protected] von diesem id_code, da ich einen id_code eingeben werde und wenn diese ID existiert, muss ich die E-Mail bekommen sonst eine Warnung ausgeben. – roger13

+0

'$ idcode' ist immer noch nicht gleich $ id_code. Sie sollten Fehlermeldungen aktivieren, um leichter zu debuggen: 'ini_set ('error_reporting', E_ALL);' und 'ini_set (" display_errors ", 1);' sollte am Anfang des Skripts aktiviert werden. – Michael

+0

wieder Tippfehler, meine Schuld jetzt wurde es geändert, ich muss nur die E-Mail holen, wo id_code gleich dem Wert ist, den ich tippe, was ist mit dem Skript falsch? – roger13

Verwandte Themen