2016-07-11 11 views
0

私が使用している会社のウェブサイトを構築しています。これは、使用しているCRMを最終的に置き換える予定です。今、私は簡単な/基本的な値のテーブルを作成する単純なPHPファイルを作成しました(私はそれを読み込み取引まで拡大する前にそのコンセプトをテストしようとしています)。 WHILEループを使用して、サーバーからデータを取得してテーブルを生成しています。各行の最初の列をクリック可能なリンクにして、新しいページを開くことができました。このページでは、編集できるより詳細なデータを投稿したいと思います。たとえば、whileループで作成されたテーブルを表示するdisplay.phpファイルでは、プロパティアドレス、都市名、およびそのプロパティを購入または売却するために働いている人物が表示されます。ユーザーが最初のアドレスをクリックすると、ベッドルーム、バスルーム、平方根、区画、価格などの情報を表示するページに開きたいと思います。これらのフィールドも編集可能ですそれは取り組むべき別のものです。今、私は1つのプロパティをクリックして、次のページの正しいデータを開くことができることに懸念しています。今は、ページを正常に開くことができますが、テーブル内のどの行をクリックしても、最初の行のデータのみが表示されます。ここでテーブルで新しいページを開く前のページのデータ

は、私は、テーブルを表示するページを持っているコードです:

:ここ

<?php 
session_start(); 
if(isset($_SESSION['id'])) { 
    $username = $_SESSION['username']; 
    $userId = $_SESSION['id']; 
} else { 
    header('Location: index.php'); 
    die(); 
} 
$dbCon = mysqli_connect("localhost", "##", "##", "##"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
     echo "Failed to connect: " . mysqli_connect_error(); 
    } 
$sql="SELECT * FROM leads"; 
$records=mysqli_query($dbCon,$sql); 
?> 
<html> 
<head> 
<title>Display Data</title> 
<body> 
<table action="" method="post" class="table" id="example"> 
    <tr> 
    <th>Address</th> 
    <th>City</th> 
    <tr> 
    <?php 
    while($leads=mysqli_fetch_assoc($records)){ 
     echo "<tr>"; 
     //I'm trying to figure out how to pass the record's ID as a way of keeping track of which record I want to look at when I open it in the next page. I don't know how to put the id in the link so that it carries through to the next page. 
     echo "<td><a href='showstuff.php?leadid=$leadid'>".$leads['address']."</a></td>"; 
     echo "<td>".$leads['city']."</td>"; 
     echo "</tr>"; 
    } 
?> 
</tr> 
</table> 
</body> 
</head> 
</html> 

は、データのより詳細な「プロファイルビュー」を開く必要があるページのための私のコードです

<?php 
 
//connect to db 
 
\t $dbCon = mysqli_connect("localhost", "##", "##", "##"); 
 
// Check connection 
 
if (mysqli_connect_errno()) 
 
{ 
 
\t echo "Failed to connect: " . mysqli_connect_error(); 
 
} 
 
//I tried to incorperate "WHERE leadid = '$_GET['leadid']'" in line 10 to define the lead id that is associated with the record that was selected in display.php and shoould be opened/shared to this page 
 
\t $sql="SELECT * FROM leads"; 
 
\t $records=mysqli_query($dbCon,$sql); 
 
\t $leads=mysqli_fetch_assoc($records); 
 
\t //I tried to create a $_GET variable that calls on the record id that I am trying to pass from the display.php file to this page 
 
\t $leadid=$_GET['leadid']; 
 
?> 
 
<html> 
 
\t <head> 
 
\t \t <title>Show Stuff</title> 
 
\t \t <body> 
 
\t \t \t <h1>Show Stuff Here</h1><br> 
 
\t \t \t <?php 
 
\t \t \t echo "<p>Test</p><br>"; 
 
\t \t \t //I only have one piece of information here to test if it works in the first place. Once it does, I'll add the rest of the fields to display 
 
\t \t \t echo "Is ".$leadid=$leads['leadid']." your ID number?"; 
 
\t \t \t ?> 
 
\t \t </body> 
 
\t </head> 
 
</html>

最終的に異なるリットルとさまざまなユーザーが存在しますので、私はここでのセッションを使用しています最後に、物事を見たり編集したりするためのアクセス権今のところ、ログインしてログアウトする以外に機能的ではありません。それはあまり安全ではありません。しかし、私はビルド時に一度に一つのことの仕組みを理解することにもっと集中しています。それはどこに使用する準備ができていない。しかし、私はすぐにそこに着くことを期待しています。あなたは私の単純なコードを言い訳しなければならない、私は勉強しているだけで私の会社は実際にこれを行うために誰かを雇うことを拒否してから私の余暇時間に自分自身を教えている...

+0

CRMと同じように複雑なアプリケーションを構築する場合は、現代の[開発フレームワーク](http://codegeekz.com/best-php-frameworks-for-developers/)を使用することの可能性を実際に評価したい場合は、 。これらには、状態を保存し、アプリケーションを整理するための組み込みのメソッドが用意されていることが多く、大規模なプログラミングでは一般的に人生を楽にします。 [Laravel](http://laravel.com/)は特によく書かれており、初心者には親切で、生の 'mysqli'呼び出しと一緒に何かを打つよりもはるかに重要です。 – tadman

+0

あなたは 'display.php'の' WHERE leadid =:theGetValue'をクエリに追加したいでしょう – 1sloc

+0

テーブルを表示する 'while'ループに' $ leadid'を設定することはありません。 – Barmar

答えて

1

URLのパラメータに入れているこの変数は決して設定しないでください。

<?php 
while($leads=mysqli_fetch_assoc($records)){ 
    echo "<tr>"; 
    $leadid = $leads['leadid']; 
    echo "<td><a href='showstuff.php?leadid=$leadid'>".$leads['address']."</a></td>"; 
    echo "<td>".$leads['city']."</td>"; 
    echo "</tr>"; 
} 
?> 

その後、あなたは彼らがクリックされた鉛のための情報を表示するためにshowstuff.php$_GET['leadid']を使用することができるはずです。

$leadid = intval($_GET['leadid']); 
$sql="SELECT * FROM leads WHERE leadid = $leadid"; 
+0

$ leadid = $ leads ['leadid']を追加しました。 showstuff.phpファイルで$ _GET ['leaded']をどこでどのように使用するかはわかりません。データがどこにポストされる<?phpタグを開いた後に入れるのですか、それともセッションの下のファイルに最初に入れますか? –

+0

私はそれを私の答えに加えました。 – Barmar

+0

すごい!それはそのような単純な修正でした。ありがとう!それは完璧に働いた。 –

0

まず、あなたのテーブルには、このように配置する必要があり:これはあなたのリンクleadid同様

while($leads=mysqli_fetch_assoc($records)){ 
    echo '<tr>'; 
    echo '<td><a href="showstuff.php?leadid='.$leads['id'].'" >'.$leads['address'].'</a></td>'; 
    echo '<td>'.$leads['city'].'</td>'; 
    echo '</tr>'; 
} 

を値を持つことになります。

html値には単純引用符 ''を使用してください。これはPHPのほうが高速で優れています。 ;)2番目のファイルで

、次のように行います。

$leadid=$_GET['leadid']; 
$sql="SELECT * FROM `leads` WHERE `id`='$leadid' "; 
$records=mysqli_query($dbCon,$sql); 
$leads=mysqli_fetch_assoc($records); 

それは価値のためのテーブルと列の名前と「」のためのを置く方が良いでしょう。

$ leads配列には、すべてのデータがあります。 あなたはこのようにそれを「印刷」することができます

echo 'The ID is '.$leads['id'].' and the name is '$leads['name']; 

を、私はそれは便利ですね!

関連する問題